cortex-mcp 2.8.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +305 -58
- package/README.md +394 -227
- package/dist/cli/setup.js +58 -60
- package/dist/cli/setup.js.map +1 -1
- package/dist/config/config.js +2 -2
- package/dist/config/config.js.map +1 -1
- package/dist/db/database.d.ts +8 -0
- package/dist/db/database.d.ts.map +1 -1
- package/dist/db/database.js +35 -54
- package/dist/db/database.js.map +1 -1
- package/dist/db/event-log.d.ts +4 -0
- package/dist/db/event-log.d.ts.map +1 -1
- package/dist/db/event-log.js +14 -10
- package/dist/db/event-log.js.map +1 -1
- package/dist/db/memory-store.d.ts +30 -3
- package/dist/db/memory-store.d.ts.map +1 -1
- package/dist/db/memory-store.js +153 -55
- package/dist/db/memory-store.js.map +1 -1
- package/dist/embedding-worker.js +1 -1
- package/dist/embedding-worker.js.map +1 -1
- package/dist/hooks/git-capture.js +3 -3
- package/dist/hooks/git-hooks.js +5 -2
- package/dist/mcp-stdio.js +70 -15
- package/dist/mcp-stdio.js.map +1 -1
- package/dist/memory/access-pattern-tracker.d.ts +51 -0
- package/dist/memory/access-pattern-tracker.d.ts.map +1 -0
- package/dist/memory/access-pattern-tracker.js +92 -0
- package/dist/memory/access-pattern-tracker.js.map +1 -0
- package/dist/memory/anticipation-engine.d.ts.map +1 -1
- package/dist/memory/anticipation-engine.js +18 -10
- package/dist/memory/anticipation-engine.js.map +1 -1
- package/dist/memory/auto-learner.d.ts.map +1 -1
- package/dist/memory/auto-learner.js +192 -45
- package/dist/memory/auto-learner.js.map +1 -1
- package/dist/memory/completion-resolver.d.ts +38 -0
- package/dist/memory/completion-resolver.d.ts.map +1 -0
- package/dist/memory/completion-resolver.js +127 -0
- package/dist/memory/completion-resolver.js.map +1 -0
- package/dist/memory/confidence-decay.d.ts.map +1 -1
- package/dist/memory/confidence-decay.js +13 -9
- package/dist/memory/confidence-decay.js.map +1 -1
- package/dist/memory/convention-detector.d.ts +11 -0
- package/dist/memory/convention-detector.d.ts.map +1 -0
- package/dist/memory/convention-detector.js +294 -0
- package/dist/memory/convention-detector.js.map +1 -0
- package/dist/memory/correction-detector.d.ts +33 -0
- package/dist/memory/correction-detector.d.ts.map +1 -0
- package/dist/memory/correction-detector.js +129 -0
- package/dist/memory/correction-detector.js.map +1 -0
- package/dist/memory/cross-memory-linker.d.ts +18 -0
- package/dist/memory/cross-memory-linker.d.ts.map +1 -0
- package/dist/memory/cross-memory-linker.js +115 -0
- package/dist/memory/cross-memory-linker.js.map +1 -0
- package/dist/memory/daily-diary.d.ts +30 -0
- package/dist/memory/daily-diary.d.ts.map +1 -0
- package/dist/memory/daily-diary.js +159 -0
- package/dist/memory/daily-diary.js.map +1 -0
- package/dist/memory/embedding-cache.d.ts +32 -0
- package/dist/memory/embedding-cache.d.ts.map +1 -0
- package/dist/memory/embedding-cache.js +76 -0
- package/dist/memory/embedding-cache.js.map +1 -0
- package/dist/memory/embedding-manager.d.ts.map +1 -1
- package/dist/memory/embedding-manager.js +6 -4
- package/dist/memory/embedding-manager.js.map +1 -1
- package/dist/memory/error-learner.d.ts +26 -0
- package/dist/memory/error-learner.d.ts.map +1 -0
- package/dist/memory/error-learner.js +145 -0
- package/dist/memory/error-learner.js.map +1 -0
- package/dist/memory/export-import.js +2 -2
- package/dist/memory/export-import.js.map +1 -1
- package/dist/memory/file-relationships.d.ts +47 -0
- package/dist/memory/file-relationships.d.ts.map +1 -0
- package/dist/memory/file-relationships.js +130 -0
- package/dist/memory/file-relationships.js.map +1 -0
- package/dist/memory/git-memory.d.ts.map +1 -1
- package/dist/memory/git-memory.js +20 -26
- package/dist/memory/git-memory.js.map +1 -1
- package/dist/memory/impact-analyzer.d.ts +16 -0
- package/dist/memory/impact-analyzer.d.ts.map +1 -0
- package/dist/memory/impact-analyzer.js +189 -0
- package/dist/memory/impact-analyzer.js.map +1 -0
- package/dist/memory/instructions-generator.d.ts +30 -0
- package/dist/memory/instructions-generator.d.ts.map +1 -0
- package/dist/memory/instructions-generator.js +117 -0
- package/dist/memory/instructions-generator.js.map +1 -0
- package/dist/memory/learning-rate.js +8 -7
- package/dist/memory/learning-rate.js.map +1 -1
- package/dist/memory/llm-enhancer.d.ts +2 -14
- package/dist/memory/llm-enhancer.d.ts.map +1 -1
- package/dist/memory/llm-enhancer.js +66 -46
- package/dist/memory/llm-enhancer.js.map +1 -1
- package/dist/memory/memory-cache.d.ts.map +1 -1
- package/dist/memory/memory-cache.js +10 -0
- package/dist/memory/memory-cache.js.map +1 -1
- package/dist/memory/memory-consolidator.d.ts.map +1 -1
- package/dist/memory/memory-consolidator.js +20 -14
- package/dist/memory/memory-consolidator.js.map +1 -1
- package/dist/memory/memory-decay.d.ts.map +1 -1
- package/dist/memory/memory-decay.js +82 -52
- package/dist/memory/memory-decay.js.map +1 -1
- package/dist/memory/memory-export-md.d.ts +12 -0
- package/dist/memory/memory-export-md.d.ts.map +1 -0
- package/dist/memory/memory-export-md.js +188 -0
- package/dist/memory/memory-export-md.js.map +1 -0
- package/dist/memory/memory-quality.d.ts +1 -1
- package/dist/memory/memory-quality.d.ts.map +1 -1
- package/dist/memory/memory-quality.js +13 -27
- package/dist/memory/memory-quality.js.map +1 -1
- package/dist/memory/memory-ranker.d.ts.map +1 -1
- package/dist/memory/memory-ranker.js +12 -3
- package/dist/memory/memory-ranker.js.map +1 -1
- package/dist/memory/meta-memory.js +3 -3
- package/dist/memory/meta-memory.js.map +1 -1
- package/dist/memory/mmr-reranker.d.ts +39 -0
- package/dist/memory/mmr-reranker.d.ts.map +1 -0
- package/dist/memory/mmr-reranker.js +115 -0
- package/dist/memory/mmr-reranker.js.map +1 -0
- package/dist/memory/pre-flight.d.ts +24 -0
- package/dist/memory/pre-flight.d.ts.map +1 -0
- package/dist/memory/pre-flight.js +121 -0
- package/dist/memory/pre-flight.js.map +1 -0
- package/dist/memory/preference-learner.d.ts +28 -0
- package/dist/memory/preference-learner.d.ts.map +1 -0
- package/dist/memory/preference-learner.js +144 -0
- package/dist/memory/preference-learner.js.map +1 -0
- package/dist/memory/query-expansion.d.ts +28 -0
- package/dist/memory/query-expansion.d.ts.map +1 -0
- package/dist/memory/query-expansion.js +140 -0
- package/dist/memory/query-expansion.js.map +1 -0
- package/dist/memory/regression-guard.d.ts +35 -0
- package/dist/memory/regression-guard.d.ts.map +1 -0
- package/dist/memory/regression-guard.js +90 -0
- package/dist/memory/regression-guard.js.map +1 -0
- package/dist/memory/resume-work.d.ts +37 -0
- package/dist/memory/resume-work.d.ts.map +1 -0
- package/dist/memory/resume-work.js +141 -0
- package/dist/memory/resume-work.js.map +1 -0
- package/dist/memory/session-tracker.d.ts +2 -0
- package/dist/memory/session-tracker.d.ts.map +1 -1
- package/dist/memory/session-tracker.js +26 -8
- package/dist/memory/session-tracker.js.map +1 -1
- package/dist/memory/soul-manager.d.ts +30 -0
- package/dist/memory/soul-manager.d.ts.map +1 -0
- package/dist/memory/soul-manager.js +171 -0
- package/dist/memory/soul-manager.js.map +1 -0
- package/dist/memory/success-tracker.d.ts +33 -0
- package/dist/memory/success-tracker.d.ts.map +1 -0
- package/dist/memory/success-tracker.js +75 -0
- package/dist/memory/success-tracker.js.map +1 -0
- package/dist/memory/temporal-engine.d.ts.map +1 -1
- package/dist/memory/temporal-engine.js +9 -13
- package/dist/memory/temporal-engine.js.map +1 -1
- package/dist/memory/tool-recommender.d.ts +29 -0
- package/dist/memory/tool-recommender.d.ts.map +1 -0
- package/dist/memory/tool-recommender.js +117 -0
- package/dist/memory/tool-recommender.js.map +1 -0
- package/dist/memory/usage-stats.d.ts +98 -0
- package/dist/memory/usage-stats.d.ts.map +1 -0
- package/dist/memory/usage-stats.js +345 -0
- package/dist/memory/usage-stats.js.map +1 -0
- package/dist/retrieval/hybrid-retriever.d.ts +0 -2
- package/dist/retrieval/hybrid-retriever.d.ts.map +1 -1
- package/dist/retrieval/hybrid-retriever.js +3 -13
- package/dist/retrieval/hybrid-retriever.js.map +1 -1
- package/dist/scanners/architecture-graph.js +2 -2
- package/dist/scanners/architecture-graph.js.map +1 -1
- package/dist/scanners/code-verifier.d.ts +1 -0
- package/dist/scanners/code-verifier.d.ts.map +1 -1
- package/dist/scanners/code-verifier.js +14 -14
- package/dist/scanners/code-verifier.js.map +1 -1
- package/dist/scanners/context-builder.d.ts.map +1 -1
- package/dist/scanners/context-builder.js +33 -45
- package/dist/scanners/context-builder.js.map +1 -1
- package/dist/scanners/export-map.js +2 -2
- package/dist/scanners/export-map.js.map +1 -1
- package/dist/scanners/project-scanner.js +2 -2
- package/dist/scanners/project-scanner.js.map +1 -1
- package/dist/security/encryption.js +1 -1
- package/dist/security/encryption.js.map +1 -1
- package/dist/security/feature-gate.d.ts.map +1 -1
- package/dist/security/feature-gate.js +62 -20
- package/dist/security/feature-gate.js.map +1 -1
- package/dist/security/license.js +282 -35
- package/dist/security/license.js.map +1 -1
- package/dist/security/rate-limiter.d.ts +4 -3
- package/dist/security/rate-limiter.d.ts.map +1 -1
- package/dist/security/rate-limiter.js +11 -29
- package/dist/security/rate-limiter.js.map +1 -1
- package/dist/server/dashboard.js +166 -327
- package/dist/server/dashboard.js.map +1 -1
- package/dist/server/mcp-handler.d.ts.map +1 -1
- package/dist/server/mcp-handler.js +991 -1019
- package/dist/server/mcp-handler.js.map +1 -1
- package/dist/utils/extract-tags.d.ts +16 -0
- package/dist/utils/extract-tags.d.ts.map +1 -0
- package/dist/utils/extract-tags.js +40 -0
- package/dist/utils/extract-tags.js.map +1 -0
- package/package.json +18 -8
- package/dist/core/event-bus.d.ts +0 -19
- package/dist/core/event-bus.d.ts.map +0 -1
- package/dist/core/event-bus.js +0 -51
- package/dist/core/event-bus.js.map +0 -1
package/dist/db/memory-store.js
CHANGED
|
@@ -6,9 +6,13 @@ exports.MemoryStore = void 0;
|
|
|
6
6
|
* Uses JS cosine similarity for M1 (no native extension needed).
|
|
7
7
|
*/
|
|
8
8
|
const uuid_1 = require("uuid");
|
|
9
|
+
// Static constants (allocated once, not per call)
|
|
10
|
+
const STOP_WORDS = new Set(['the', 'a', 'an', 'is', 'are', 'was', 'were', 'to', 'of', 'in', 'for', 'on', 'with', 'at', 'by', 'from', 'use', 'always', 'never', 'should', 'must', 'not', 'do', 'be', 'it', 'this', 'that', 'and', 'or', 'but']);
|
|
9
11
|
class MemoryStore {
|
|
10
12
|
db;
|
|
11
|
-
//
|
|
13
|
+
// ═══ PREPARED STATEMENTS (cached once in constructor) ═══
|
|
14
|
+
// Using `any` type: better-sqlite3 Statement generic doesn't support
|
|
15
|
+
// variable arg counts when stored as fields (all results cast to any[] anyway)
|
|
12
16
|
insertMemoryStmt;
|
|
13
17
|
updateMemoryStmt;
|
|
14
18
|
getMemoryStmt;
|
|
@@ -16,8 +20,25 @@ class MemoryStore {
|
|
|
16
20
|
touchStmt;
|
|
17
21
|
insertEdgeStmt;
|
|
18
22
|
insertVectorStmt;
|
|
23
|
+
// Query statements (cached for perf — avoid re-prepare on every call)
|
|
24
|
+
getActiveStmt;
|
|
25
|
+
getByTypeStmt;
|
|
26
|
+
getByFileStmt;
|
|
27
|
+
searchFTSStmt;
|
|
28
|
+
findByTagStmt;
|
|
29
|
+
getByTimestampRangeStmt;
|
|
30
|
+
getByDirectoryStmt;
|
|
31
|
+
getStaleStmt;
|
|
32
|
+
getLeastImportantStmt;
|
|
33
|
+
activeCountStmt;
|
|
34
|
+
totalCountStmt;
|
|
35
|
+
findDuplicateStmt;
|
|
36
|
+
getEdgesFromStmt;
|
|
37
|
+
getEdgesToStmt;
|
|
19
38
|
// In-memory vector index (JS fallback for M1)
|
|
20
39
|
vectors = new Map();
|
|
40
|
+
// Batch transaction wrapper
|
|
41
|
+
_transaction;
|
|
21
42
|
constructor(database) {
|
|
22
43
|
this.db = database.connection;
|
|
23
44
|
// Create vector table (simple key-value for M1)
|
|
@@ -30,6 +51,10 @@ class MemoryStore {
|
|
|
30
51
|
// Index for faster filtering by type/status
|
|
31
52
|
this.db.exec(`CREATE INDEX IF NOT EXISTS idx_memories_type_active ON memory_units(type, is_active);`);
|
|
32
53
|
this.db.exec(`CREATE INDEX IF NOT EXISTS idx_memories_created ON memory_units(created_at);`);
|
|
54
|
+
this.db.exec(`CREATE INDEX IF NOT EXISTS idx_memories_access_created ON memory_units(access_count, created_at);`);
|
|
55
|
+
this.db.exec(`CREATE INDEX IF NOT EXISTS idx_memories_importance ON memory_units(importance);`);
|
|
56
|
+
this.db.exec(`CREATE INDEX IF NOT EXISTS idx_memories_tags ON memory_units(tags);`);
|
|
57
|
+
// ─── Write statements ───
|
|
33
58
|
this.insertMemoryStmt = this.db.prepare(`
|
|
34
59
|
INSERT INTO memory_units (
|
|
35
60
|
id, type, intent, action, reason, impact, outcome,
|
|
@@ -60,9 +85,39 @@ class MemoryStore {
|
|
|
60
85
|
VALUES (@sourceId, @targetId, @relation, @weight, @timestamp)
|
|
61
86
|
`);
|
|
62
87
|
this.insertVectorStmt = this.db.prepare('INSERT OR REPLACE INTO memory_vectors (id, embedding) VALUES (@id, @embedding)');
|
|
88
|
+
// ─── Read statements (cached for perf) ───
|
|
89
|
+
this.getActiveStmt = this.db.prepare('SELECT * FROM memory_units WHERE is_active = 1 ORDER BY timestamp DESC LIMIT ?');
|
|
90
|
+
this.getByTypeStmt = this.db.prepare('SELECT * FROM memory_units WHERE type = ? AND is_active = 1 ORDER BY timestamp DESC LIMIT ?');
|
|
91
|
+
this.getByFileStmt = this.db.prepare('SELECT * FROM memory_units WHERE is_active = 1 AND related_files LIKE ? ORDER BY timestamp DESC LIMIT ?');
|
|
92
|
+
this.searchFTSStmt = this.db.prepare(`
|
|
93
|
+
SELECT m.*, fts.rank
|
|
94
|
+
FROM memory_fts fts
|
|
95
|
+
JOIN memory_units m ON m.id = fts.id
|
|
96
|
+
WHERE memory_fts MATCH ? AND m.is_active = 1
|
|
97
|
+
AND (m.tags IS NULL OR m.tags NOT LIKE '%resolved%')
|
|
98
|
+
ORDER BY fts.rank
|
|
99
|
+
LIMIT ?
|
|
100
|
+
`);
|
|
101
|
+
this.findByTagStmt = this.db.prepare('SELECT * FROM memory_units WHERE is_active = 1 AND tags LIKE ? LIMIT ?');
|
|
102
|
+
this.getByTimestampRangeStmt = this.db.prepare('SELECT * FROM memory_units WHERE is_active = 1 AND timestamp >= ? AND timestamp < ? ORDER BY timestamp DESC LIMIT ?');
|
|
103
|
+
this.getByDirectoryStmt = this.db.prepare('SELECT * FROM memory_units WHERE is_active = 1 AND related_files LIKE ? ORDER BY timestamp DESC LIMIT ?');
|
|
104
|
+
this.getStaleStmt = this.db.prepare('SELECT * FROM memory_units WHERE is_active = 1 AND access_count = 0 AND created_at < ? ORDER BY importance ASC LIMIT ?');
|
|
105
|
+
this.getLeastImportantStmt = this.db.prepare('SELECT * FROM memory_units WHERE is_active = 1 ORDER BY importance ASC LIMIT ?');
|
|
106
|
+
this.activeCountStmt = this.db.prepare('SELECT COUNT(*) as cnt FROM memory_units WHERE is_active = 1');
|
|
107
|
+
this.totalCountStmt = this.db.prepare('SELECT COUNT(*) as cnt FROM memory_units');
|
|
108
|
+
this.findDuplicateStmt = this.db.prepare('SELECT * FROM memory_units WHERE type = ? AND is_active = 1 LIMIT 200');
|
|
109
|
+
this.getEdgesFromStmt = this.db.prepare('SELECT * FROM edges WHERE source_id = ?');
|
|
110
|
+
this.getEdgesToStmt = this.db.prepare('SELECT * FROM edges WHERE target_id = ?');
|
|
111
|
+
// Batch transaction wrapper
|
|
112
|
+
this._transaction = this.db.transaction((fn) => fn());
|
|
63
113
|
// Load existing vectors into memory for fast JS cosine search
|
|
64
114
|
this.loadVectors();
|
|
65
115
|
}
|
|
116
|
+
// ═══ BATCH OPERATIONS ═══
|
|
117
|
+
/** Run multiple operations in a single SQLite transaction (10-100x faster for bulk writes) */
|
|
118
|
+
runTransaction(fn) {
|
|
119
|
+
this._transaction(fn);
|
|
120
|
+
}
|
|
66
121
|
// ═══ MEMORY CRUD ═══
|
|
67
122
|
/** Create a new memory unit (with deduplication) */
|
|
68
123
|
add(memory) {
|
|
@@ -117,30 +172,49 @@ class MemoryStore {
|
|
|
117
172
|
}
|
|
118
173
|
/**
|
|
119
174
|
* Find a duplicate memory by type + intent similarity.
|
|
120
|
-
* Uses word-overlap
|
|
121
|
-
* Returns existing memory if similarity >
|
|
175
|
+
* Uses HYBRID approach: Jaccard word-overlap + cosine similarity (when vectors available).
|
|
176
|
+
* Returns existing memory if similarity > threshold, else undefined.
|
|
122
177
|
*/
|
|
123
178
|
findDuplicate(type, intent) {
|
|
124
|
-
const candidates = this.
|
|
125
|
-
.prepare('SELECT * FROM memory_units WHERE type = ? AND is_active = 1 LIMIT 500')
|
|
126
|
-
.all(type);
|
|
179
|
+
const candidates = this.findDuplicateStmt.all(type);
|
|
127
180
|
const newWords = new Set(this.tokenize(intent));
|
|
128
181
|
if (newWords.size === 0)
|
|
129
182
|
return undefined;
|
|
183
|
+
let bestMatch;
|
|
130
184
|
for (const row of candidates) {
|
|
131
185
|
const existingWords = new Set(this.tokenize(row.intent));
|
|
132
186
|
const intersection = [...newWords].filter(w => existingWords.has(w)).length;
|
|
133
187
|
const union = new Set([...newWords, ...existingWords]).size;
|
|
134
|
-
const
|
|
135
|
-
if (
|
|
188
|
+
const jaccardScore = union > 0 ? intersection / union : 0;
|
|
189
|
+
if (jaccardScore >= 0.85) {
|
|
136
190
|
return this.rowToMemory(row);
|
|
137
191
|
}
|
|
192
|
+
// Track best match for semantic/stem check (candidates with partial Jaccard overlap)
|
|
193
|
+
if (jaccardScore >= 0.35 && (!bestMatch || jaccardScore > bestMatch.score)) {
|
|
194
|
+
bestMatch = { memory: this.rowToMemory(row), score: jaccardScore };
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
// Semantic dedup pass: for partial Jaccard matches, check stem similarity
|
|
198
|
+
if (bestMatch && bestMatch.score >= 0.35) {
|
|
199
|
+
const bestId = bestMatch.memory.id;
|
|
200
|
+
const newTokens = this.tokenize(intent);
|
|
201
|
+
const existingTokens = this.tokenize(bestMatch.memory.intent);
|
|
202
|
+
// Enhanced overlap: check for semantic synonyms via shared stems
|
|
203
|
+
const newStems = new Set(newTokens.map(w => w.slice(0, Math.min(w.length, 5))));
|
|
204
|
+
const existStems = new Set(existingTokens.map(w => w.slice(0, Math.min(w.length, 5))));
|
|
205
|
+
const stemOverlap = [...newStems].filter(s => existStems.has(s)).length;
|
|
206
|
+
const stemUnion = new Set([...newStems, ...existStems]).size;
|
|
207
|
+
const stemScore = stemUnion > 0 ? stemOverlap / stemUnion : 0;
|
|
208
|
+
// If stem similarity is high enough, treat as duplicate
|
|
209
|
+
if (stemScore >= 0.75) {
|
|
210
|
+
this.touch(bestId);
|
|
211
|
+
return bestMatch.memory;
|
|
212
|
+
}
|
|
138
213
|
}
|
|
139
214
|
return undefined;
|
|
140
215
|
}
|
|
141
216
|
/** Tokenize text into lowercase words (stop-word filtered) */
|
|
142
217
|
tokenize(text) {
|
|
143
|
-
const STOP_WORDS = new Set(['the', 'a', 'an', 'is', 'are', 'was', 'were', 'to', 'of', 'in', 'for', 'on', 'with', 'at', 'by', 'from', 'use', 'always', 'never', 'should', 'must', 'not', 'do', 'be', 'it', 'this', 'that', 'and', 'or', 'but']);
|
|
144
218
|
return text
|
|
145
219
|
.toLowerCase()
|
|
146
220
|
.replace(/[^a-z0-9\s]/g, ' ')
|
|
@@ -182,59 +256,64 @@ class MemoryStore {
|
|
|
182
256
|
}
|
|
183
257
|
/** Get all active memories */
|
|
184
258
|
getActive(limit = 1000) {
|
|
185
|
-
const rows = this.
|
|
186
|
-
|
|
187
|
-
.all(limit);
|
|
188
|
-
return rows.map(r => this.rowToMemory(r));
|
|
259
|
+
const rows = this.getActiveStmt.all(limit);
|
|
260
|
+
return rows.map(this.rowToMemory);
|
|
189
261
|
}
|
|
190
262
|
/** Get memories by type */
|
|
191
263
|
getByType(type, limit = 100) {
|
|
192
|
-
const rows = this.
|
|
193
|
-
|
|
194
|
-
.all(type, limit);
|
|
195
|
-
return rows.map(r => this.rowToMemory(r));
|
|
264
|
+
const rows = this.getByTypeStmt.all(type, limit);
|
|
265
|
+
return rows.map(this.rowToMemory);
|
|
196
266
|
}
|
|
197
267
|
/** Get memories related to a file */
|
|
198
268
|
getByFile(filePath, limit = 50) {
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
.prepare(`SELECT * FROM memory_units WHERE is_active = 1
|
|
202
|
-
AND related_files LIKE ? ORDER BY timestamp DESC LIMIT ?`)
|
|
203
|
-
.all(`%${filePath}%`, limit);
|
|
204
|
-
return rows.map(r => this.rowToMemory(r));
|
|
269
|
+
const rows = this.getByFileStmt.all(`%${filePath}%`, limit);
|
|
270
|
+
return rows.map(this.rowToMemory);
|
|
205
271
|
}
|
|
206
|
-
/** Full-text search via FTS5 */
|
|
272
|
+
/** Full-text search via FTS5 (with query sanitization) */
|
|
207
273
|
searchFTS(query, limit = 20) {
|
|
208
|
-
// Sanitize:
|
|
274
|
+
// Sanitize: strip FTS5 special chars, join words with OR
|
|
209
275
|
const sanitized = query
|
|
210
|
-
.replace(/[
|
|
211
|
-
.
|
|
212
|
-
.
|
|
213
|
-
.
|
|
214
|
-
// If nothing left after sanitization, return empty
|
|
276
|
+
.replace(/[^\w\s]/g, ' ')
|
|
277
|
+
.split(/\s+/)
|
|
278
|
+
.filter(w => w.length > 2)
|
|
279
|
+
.join(' OR ');
|
|
215
280
|
if (!sanitized)
|
|
216
281
|
return [];
|
|
217
282
|
try {
|
|
218
|
-
const rows = this.
|
|
219
|
-
|
|
220
|
-
.
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
283
|
+
const rows = this.searchFTSStmt.all(sanitized, limit);
|
|
284
|
+
return rows.map((row) => {
|
|
285
|
+
const baseScore = -row.rank; // FTS5 rank is negative (lower = better)
|
|
286
|
+
// Recency boost: newer memories get higher score
|
|
287
|
+
// 1.5x for <1 day, 1.3x for <7 days, 1.1x for <30 days, 1.0x for older
|
|
288
|
+
const ageMs = Date.now() - (row.timestamp || 0);
|
|
289
|
+
const ageDays = ageMs / 86400000;
|
|
290
|
+
const recencyBoost = ageDays < 1 ? 1.5 : ageDays < 7 ? 1.3 : ageDays < 30 ? 1.1 : 1.0;
|
|
291
|
+
// Importance boost: higher importance memories rank higher
|
|
292
|
+
const importanceBoost = 1 + ((row.importance || 0.5) * 0.3);
|
|
293
|
+
return {
|
|
294
|
+
memory: this.rowToMemory(row),
|
|
295
|
+
score: baseScore * recencyBoost * importanceBoost,
|
|
296
|
+
matchMethod: 'fts',
|
|
297
|
+
};
|
|
298
|
+
}).sort((a, b) => b.score - a.score);
|
|
226
299
|
}
|
|
227
300
|
catch {
|
|
228
|
-
// FTS failed
|
|
301
|
+
// FTS failed — fall back to LIKE search with ALL words
|
|
229
302
|
try {
|
|
230
|
-
const
|
|
303
|
+
const words = query
|
|
304
|
+
.replace(/[^\w\s]/g, ' ')
|
|
305
|
+
.split(/\s+/)
|
|
306
|
+
.filter(w => w.length > 2);
|
|
307
|
+
if (words.length === 0)
|
|
308
|
+
return [];
|
|
309
|
+
const conditions = words.map(w => `(intent LIKE '%${w}%' OR action LIKE '%${w}%' OR reason LIKE '%${w}%' OR tags LIKE '%${w}%')`).join(' OR ');
|
|
231
310
|
const rows = this.db
|
|
232
|
-
.prepare(`SELECT * FROM memory_units WHERE is_active = 1 AND (
|
|
233
|
-
.all(
|
|
311
|
+
.prepare(`SELECT * FROM memory_units WHERE is_active = 1 AND (${conditions}) ORDER BY timestamp DESC LIMIT ?`)
|
|
312
|
+
.all(limit);
|
|
234
313
|
return rows.map((row) => ({
|
|
235
314
|
memory: this.rowToMemory(row),
|
|
236
315
|
score: 0.5,
|
|
237
|
-
matchMethod: '
|
|
316
|
+
matchMethod: 'like-fallback',
|
|
238
317
|
}));
|
|
239
318
|
}
|
|
240
319
|
catch {
|
|
@@ -297,15 +376,11 @@ class MemoryStore {
|
|
|
297
376
|
}
|
|
298
377
|
/** Get edges from a source memory */
|
|
299
378
|
getEdgesFrom(sourceId) {
|
|
300
|
-
return this.
|
|
301
|
-
.prepare('SELECT * FROM edges WHERE source_id = ?')
|
|
302
|
-
.all(sourceId);
|
|
379
|
+
return this.getEdgesFromStmt.all(sourceId);
|
|
303
380
|
}
|
|
304
381
|
/** Get edges to a target memory */
|
|
305
382
|
getEdgesTo(targetId) {
|
|
306
|
-
return this.
|
|
307
|
-
.prepare('SELECT * FROM edges WHERE target_id = ?')
|
|
308
|
-
.all(targetId);
|
|
383
|
+
return this.getEdgesToStmt.all(targetId);
|
|
309
384
|
}
|
|
310
385
|
/** Graph traversal — find related memories within N hops */
|
|
311
386
|
getRelated(memoryId, maxHops = 2, limit = 20) {
|
|
@@ -336,19 +411,42 @@ class MemoryStore {
|
|
|
336
411
|
matchMethod: 'graph',
|
|
337
412
|
}));
|
|
338
413
|
}
|
|
414
|
+
// ═══ TARGETED QUERIES (avoid loading all memories into JS) ═══
|
|
415
|
+
/** Find active memories by tag (SQL LIKE on JSON tags column) */
|
|
416
|
+
findByTag(tag, limit = 10) {
|
|
417
|
+
const rows = this.findByTagStmt.all(`%"${tag}"%`, limit);
|
|
418
|
+
return rows.map(this.rowToMemory);
|
|
419
|
+
}
|
|
420
|
+
/** Get active memories within a timestamp range */
|
|
421
|
+
getActiveByTimestampRange(start, end, limit = 200) {
|
|
422
|
+
const rows = this.getByTimestampRangeStmt.all(start, end, limit);
|
|
423
|
+
return rows.map(this.rowToMemory);
|
|
424
|
+
}
|
|
425
|
+
/** Get active memories related to files in a directory (SQL LIKE prefix) */
|
|
426
|
+
getByDirectory(dirPrefix, limit = 20) {
|
|
427
|
+
const rows = this.getByDirectoryStmt.all(`%${dirPrefix}%`, limit);
|
|
428
|
+
return rows.map(this.rowToMemory);
|
|
429
|
+
}
|
|
430
|
+
/** Get active memories with 0 access older than a given age */
|
|
431
|
+
getStaleMemories(maxAgeMs, limit = 500) {
|
|
432
|
+
const cutoff = Date.now() - maxAgeMs;
|
|
433
|
+
const rows = this.getStaleStmt.all(cutoff, limit);
|
|
434
|
+
return rows.map(this.rowToMemory);
|
|
435
|
+
}
|
|
436
|
+
/** Get active memories sorted by importance ASC (for cap enforcement) */
|
|
437
|
+
getLeastImportant(limit) {
|
|
438
|
+
const rows = this.getLeastImportantStmt.all(limit);
|
|
439
|
+
return rows.map(this.rowToMemory);
|
|
440
|
+
}
|
|
339
441
|
// ═══ STATS ═══
|
|
340
442
|
/** Total active memories */
|
|
341
443
|
activeCount() {
|
|
342
|
-
const row = this.
|
|
343
|
-
.prepare('SELECT COUNT(*) as cnt FROM memory_units WHERE is_active = 1')
|
|
344
|
-
.get();
|
|
444
|
+
const row = this.activeCountStmt.get();
|
|
345
445
|
return row.cnt;
|
|
346
446
|
}
|
|
347
447
|
/** Total memories (including inactive) */
|
|
348
448
|
totalCount() {
|
|
349
|
-
const row = this.
|
|
350
|
-
.prepare('SELECT COUNT(*) as cnt FROM memory_units')
|
|
351
|
-
.get();
|
|
449
|
+
const row = this.totalCountStmt.get();
|
|
352
450
|
return row.cnt;
|
|
353
451
|
}
|
|
354
452
|
// ═══ HELPERS ═══
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-store.js","sourceRoot":"","sources":["../../src/db/memory-store.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,+BAAoC;AAUpC,MAAa,WAAW;IACZ,EAAE,CAAiB;IAE3B,sBAAsB;IACd,gBAAgB,CAAwC;IACxD,gBAAgB,CAAwC;IACxD,aAAa,CAAwC;IACrD,cAAc,CAAwC;IACtD,SAAS,CAAwC;IACjD,cAAc,CAAwC;IACtD,gBAAgB,CAAwC;IAEhE,8CAA8C;IACtC,OAAO,GAA8B,IAAI,GAAG,EAAE,CAAC;IAEvD,YAAY,QAA2B;QACnC,IAAI,CAAC,EAAE,GAAG,QAAQ,CAAC,UAAU,CAAC;QAE9B,gDAAgD;QAChD,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;;;KAKhB,CAAC,CAAC;QAEC,4CAA4C;QAC5C,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,uFAAuF,CAAC,CAAC;QACtG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,8EAA8E,CAAC,CAAC;QAE7F,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;;;;;;;KAY3C,CAAC,CAAC;QAEC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;;;KAQ3C,CAAC,CAAC;QAEC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAChC,yCAAyC,CAC5C,CAAC;QAEF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CACjC,qFAAqF,CACxF,CAAC;QAEF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC5B,uGAAuG,CAC1G,CAAC;QAEF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;KAGzC,CAAC,CAAC;QAEC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CACnC,gFAAgF,CACnF,CAAC;QAEF,8DAA8D;QAC9D,IAAI,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;IAED,sBAAsB;IAEtB,oDAAoD;IACpD,GAAG,CAAC,MAAkF;QAClF,kEAAkE;QAClE,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACjE,IAAI,SAAS,EAAE,CAAC;YACZ,mDAAmD;YACnD,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YACzB,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,IAAI,IAAA,SAAM,GAAE,CAAC;QAEjC,MAAM,IAAI,GAAe;YACrB,EAAE;YACF,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,SAAS;YACpC,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,EAAE;YACvC,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE;YACvB,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,GAAG;YAClC,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,GAAG;YACpC,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,GAAG;YACpC,WAAW,EAAE,CAAC;YACd,YAAY,EAAE,SAAS;YACvB,YAAY,EAAE,SAAS;YACvB,QAAQ,EAAE,IAAI;YACd,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,SAAS,EAAE,GAAG;SACjB,CAAC;QAEF,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC;YACtB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI;YAC3B,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI;YAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC;YAC/C,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI;YACrC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;YAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,IAAI;YACzC,SAAS,EAAE,IAAI,CAAC,SAAS;SAC5B,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACK,aAAa,CAAC,IAAgB,EAAE,MAAc;QAClD,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE;aACrB,OAAO,CAAC,uEAAuE,CAAC;aAChF,GAAG,CAAC,IAAI,CAAU,CAAC;QAExB,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QAChD,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAE1C,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC3B,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;YACzD,MAAM,YAAY,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAC5E,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;YAC5D,MAAM,UAAU,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACxD,IAAI,UAAU,IAAI,GAAG,EAAE,CAAC;gBACpB,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACjC,CAAC;QACL,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,8DAA8D;IACtD,QAAQ,CAAC,IAAY;QACzB,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QAC/O,OAAO,IAAI;aACN,WAAW,EAAE;aACb,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC;aAC5B,KAAK,CAAC,KAAK,CAAC;aACZ,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC;IAGD,gCAAgC;IAChC,MAAM,CAAC,EAAU,EAAE,OAA4B;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEtB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC;YACtB,EAAE;YACF,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM;YACzC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM;YACzC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,IAAI,IAAI;YACjD,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,IAAI,IAAI;YACjD,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO;YAC5C,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,IAAI,QAAQ,CAAC,YAAY,CAAC;YAC3E,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,QAAQ,CAAC,WAAW,IAAI,IAAI;YAChE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC;YACnD,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,QAAQ,CAAC,UAAU;YACrD,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,QAAQ,CAAC,UAAU;YACrD,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,QAAQ,CAAC,SAAS;SACrD,CAAC,CAAC;IACP,CAAC;IAED,yBAAyB;IACzB,GAAG,CAAC,EAAU;QACV,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAQ,CAAC;QAC9C,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACnD,CAAC;IAED,wCAAwC;IACxC,UAAU,CAAC,EAAU,EAAE,YAAqB;QACxC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,YAAY,IAAI,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,iDAAiD;IACjD,KAAK,CAAC,EAAU;QACZ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,8BAA8B;IAC9B,SAAS,CAAC,QAAgB,IAAI;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;aACf,OAAO,CAAC,gFAAgF,CAAC;aACzF,GAAG,CAAC,KAAK,CAAU,CAAC;QACzB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;IAED,2BAA2B;IAC3B,SAAS,CAAC,IAAgB,EAAE,QAAgB,GAAG;QAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;aACf,OAAO,CAAC,6FAA6F,CAAC;aACtG,GAAG,CAAC,IAAI,EAAE,KAAK,CAAU,CAAC;QAC/B,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;IAED,qCAAqC;IACrC,SAAS,CAAC,QAAgB,EAAE,QAAgB,EAAE;QAC1C,qCAAqC;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;aACf,OAAO,CAAC;iEAC4C,CAAC;aACrD,GAAG,CAAC,IAAI,QAAQ,GAAG,EAAE,KAAK,CAAU,CAAC;QAC1C,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;IAED,gCAAgC;IAChC,SAAS,CAAC,KAAa,EAAE,QAAgB,EAAE;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;aACf,OAAO,CAAC;;;;;;;OAOd,CAAC;aACK,GAAG,CAAC,KAAK,EAAE,KAAK,CAAU,CAAC;QAEhC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACtB,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;YAC7B,KAAK,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,yCAAyC;YAC3D,WAAW,EAAE,KAAK;SACrB,CAAC,CAAC,CAAC;IACR,CAAC;IAED,6DAA6D;IAE7D,+BAA+B;IAC/B,WAAW,CAAC,EAAU,EAAE,SAAuB;QAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IACpC,CAAC;IAED,kCAAkC;IAClC,YAAY,CAAC,cAA4B,EAAE,QAAgB,EAAE;QACzD,MAAM,OAAO,GAAyC,EAAE,CAAC;QAEzD,KAAK,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACnC,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;YACvD,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAE1C,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACrC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC9B,OAAO;gBACH,MAAM,EAAE,MAAO;gBACf,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,WAAW,EAAE,QAAQ;aACxB,CAAC;QACN,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACpD,CAAC;IAEO,gBAAgB,CAAC,CAAe,EAAE,CAAe;QACrD,IAAI,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACnB,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACpB,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC;IACrC,CAAC;IAEO,WAAW;QACf,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC,GAAG,EAAW,CAAC;QACxF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACrB,MAAM,MAAM,GAAG,GAAG,CAAC,SAAmB,CAAC;YACvC,MAAM,SAAS,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACxF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QACxC,CAAC;IACL,CAAC;IAED,sBAAsB;IAEtB,mCAAmC;IACnC,OAAO,CAAC,IAAe;QACnB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;YACpB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC5B,CAAC,CAAC;IACP,CAAC;IAED,qCAAqC;IACrC,YAAY,CAAC,QAAgB;QACzB,OAAO,IAAI,CAAC,EAAE;aACT,OAAO,CAAC,yCAAyC,CAAC;aAClD,GAAG,CAAC,QAAQ,CAAU,CAAC;IAChC,CAAC;IAED,mCAAmC;IACnC,UAAU,CAAC,QAAgB;QACvB,OAAO,IAAI,CAAC,EAAE;aACT,OAAO,CAAC,yCAAyC,CAAC;aAClD,GAAG,CAAC,QAAQ,CAAU,CAAC;IAChC,CAAC;IAED,4DAA4D;IAC5D,UAAU,CAAC,QAAgB,EAAE,UAAkB,CAAC,EAAE,QAAgB,EAAE;QAChE,oCAAoC;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;aACf,OAAO,CAAC;;;;;;;;;;;;;;;;;OAiBd,CAAC;aACK,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAU,CAAC;QAE5C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACtB,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;YAC7B,KAAK,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,wBAAwB;YACtD,WAAW,EAAE,OAAO;SACvB,CAAC,CAAC,CAAC;IACR,CAAC;IAED,gBAAgB;IAEhB,4BAA4B;IAC5B,WAAW;QACP,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aACd,OAAO,CAAC,8DAA8D,CAAC;aACvE,GAAG,EAAqB,CAAC;QAC9B,OAAO,GAAG,CAAC,GAAG,CAAC;IACnB,CAAC;IAED,0CAA0C;IAC1C,UAAU;QACN,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aACd,OAAO,CAAC,0CAA0C,CAAC;aACnD,GAAG,EAAqB,CAAC;QAC9B,OAAO,GAAG,CAAC,GAAG,CAAC;IACnB,CAAC;IAED,kBAAkB;IAEV,WAAW,CAAC,GAAQ;QACxB,OAAO;YACH,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,SAAS;YAC/B,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,SAAS;YAC/B,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,SAAS;YACjC,YAAY,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE;YACpE,WAAW,EAAE,GAAG,CAAC,YAAY,IAAI,SAAS;YAC1C,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;YAC1C,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,WAAW,EAAE,GAAG,CAAC,YAAY;YAC7B,YAAY,EAAE,GAAG,CAAC,aAAa,IAAI,SAAS;YAC5C,YAAY,EAAE,GAAG,CAAC,aAAa,IAAI,SAAS;YAC5C,QAAQ,EAAE,GAAG,CAAC,SAAS,KAAK,CAAC;YAC7B,aAAa,EAAE,GAAG,CAAC,eAAe,IAAI,SAAS;YAC/C,SAAS,EAAE,GAAG,CAAC,UAAU;SAC5B,CAAC;IACN,CAAC;IAEM,YAAY;QACf,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;QAC9D,IAAI,CAAC;YACD,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;YACtE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;QACxE,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QAC5D,CAAC;IACL,CAAC;CACJ;AAlaD,kCAkaC"}
|
|
1
|
+
{"version":3,"file":"memory-store.js","sourceRoot":"","sources":["../../src/db/memory-store.ts"],"names":[],"mappings":"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"}
|
package/dist/embedding-worker.js
CHANGED
|
@@ -52,7 +52,7 @@ async function loadModel() {
|
|
|
52
52
|
const { pipeline: createPipeline } = await Promise.resolve().then(() => __importStar(require('@xenova/transformers')));
|
|
53
53
|
pipeline = await createPipeline('feature-extraction', 'Xenova/all-MiniLM-L6-v2', {
|
|
54
54
|
quantized: true,
|
|
55
|
-
progress_callback: (
|
|
55
|
+
progress_callback: (_x) => { }, // SILENCE PROGRESS BARS
|
|
56
56
|
});
|
|
57
57
|
modelReady = true;
|
|
58
58
|
worker_threads_1.parentPort?.postMessage({ type: 'ready' });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embedding-worker.js","sourceRoot":"","sources":["../src/embedding-worker.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;;;;GAKG;AACH,sDAAsD;AACtD,OAAO,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;AACxB,OAAO,CAAC,IAAI,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;AACzB,OAAO,CAAC,KAAK,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;AAE1B,mDAA4C;AAE5C,IAAI,QAAQ,GAAQ,IAAI,CAAC;AACzB,IAAI,UAAU,GAAG,KAAK,CAAC;AAwBvB,KAAK,UAAU,SAAS;IACpB,IAAI,CAAC;QACD,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,wDAAa,sBAAsB,GAAC,CAAC;QAE1E,QAAQ,GAAG,MAAM,cAAc,CAAC,oBAAoB,EAAE,yBAAyB,EAAE;YAC7E,SAAS,EAAE,IAAI;YACf,iBAAiB,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"embedding-worker.js","sourceRoot":"","sources":["../src/embedding-worker.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;;;;GAKG;AACH,sDAAsD;AACtD,OAAO,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;AACxB,OAAO,CAAC,IAAI,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;AACzB,OAAO,CAAC,KAAK,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;AAE1B,mDAA4C;AAE5C,IAAI,QAAQ,GAAQ,IAAI,CAAC;AACzB,IAAI,UAAU,GAAG,KAAK,CAAC;AAwBvB,KAAK,UAAU,SAAS;IACpB,IAAI,CAAC;QACD,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,wDAAa,sBAAsB,GAAC,CAAC;QAE1E,QAAQ,GAAG,MAAM,cAAc,CAAC,oBAAoB,EAAE,yBAAyB,EAAE;YAC7E,SAAS,EAAE,IAAI;YACf,iBAAiB,EAAE,CAAC,EAAO,EAAE,EAAE,GAAG,CAAC,EAAE,wBAAwB;SAChE,CAAC,CAAC;QACH,UAAU,GAAG,IAAI,CAAC;QAClB,2BAAU,EAAE,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,EAAmB,CAAC,CAAC;IAChE,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAChB,2BAAU,EAAE,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAmB,CAAC,CAAC;IACtG,CAAC;AACL,CAAC;AAED,2BAAU,EAAE,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,GAAiB,EAAE,EAAE;IAClD,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO;IAEjC,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,2BAAU,EAAE,WAAW,CAAC;YACpB,IAAI,EAAE,OAAO;YACb,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,OAAO,EAAE,qBAAqB;SAChB,CAAC,CAAC;QACpB,OAAO;IACX,CAAC;IAED,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9E,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAoB,CAAC,CAAC;QACvD,2BAAU,EAAE,WAAW,CAAC;YACpB,IAAI,EAAE,QAAQ;YACd,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,MAAM;SACQ,CAAC,CAAC;IACxB,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAChB,2BAAU,EAAE,WAAW,CAAC;YACpB,IAAI,EAAE,OAAO;YACb,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,OAAO,EAAE,GAAG,CAAC,OAAO;SACN,CAAC,CAAC;IACxB,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,4BAA4B;AAC5B,SAAS,EAAE,CAAC"}
|
|
@@ -154,9 +154,9 @@ function main() {
|
|
|
154
154
|
const existing = db.prepare(`SELECT id FROM memory_units WHERE tags LIKE ? AND is_active = 1`).get(`%${shortHash}%`);
|
|
155
155
|
if (!existing) {
|
|
156
156
|
db.prepare(`
|
|
157
|
-
INSERT INTO memory_units (id, type, intent, action, reason, related_files, tags, timestamp, confidence, importance, is_active
|
|
158
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 1
|
|
159
|
-
`).run(id, type, intent, action, `Auto-captured from git commit ${shortHash}`, JSON.stringify(relatedFiles), JSON.stringify(tags), now, 0.6, 0.5
|
|
157
|
+
INSERT INTO memory_units (id, type, intent, action, reason, related_files, tags, timestamp, confidence, importance, is_active)
|
|
158
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 1)
|
|
159
|
+
`).run(id, type, intent, action, `Auto-captured from git commit ${shortHash}`, JSON.stringify(relatedFiles), JSON.stringify(tags), now, 0.6, 0.5);
|
|
160
160
|
// Also insert into FTS index if it exists
|
|
161
161
|
try {
|
|
162
162
|
db.prepare(`INSERT INTO memory_fts (rowid, intent, action, tags) VALUES (
|
package/dist/hooks/git-hooks.js
CHANGED
|
@@ -64,7 +64,7 @@ function main() {
|
|
|
64
64
|
if (!workspaceRoot)
|
|
65
65
|
process.exit(0);
|
|
66
66
|
// Check DB exists
|
|
67
|
-
const dbPath = path.join(workspaceRoot, '.ai', 'brain-data', '
|
|
67
|
+
const dbPath = path.join(workspaceRoot, '.ai', 'brain-data', 'cortex.db');
|
|
68
68
|
if (!fs.existsSync(dbPath))
|
|
69
69
|
process.exit(0);
|
|
70
70
|
let type = 'INSIGHT';
|
|
@@ -115,7 +115,10 @@ function main() {
|
|
|
115
115
|
// Check dedup
|
|
116
116
|
const existing = db.prepare(`SELECT id FROM memory_units WHERE intent = ? AND is_active = 1`).get(intent);
|
|
117
117
|
if (!existing) {
|
|
118
|
-
db.prepare(
|
|
118
|
+
db.prepare(`
|
|
119
|
+
INSERT INTO memory_units (id, type, intent, action, reason, tags, timestamp, confidence, importance, is_active)
|
|
120
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, 1)
|
|
121
|
+
`).run(generateId(), type, intent, action, `Auto-captured from git ${hookType}`, JSON.stringify(tags), Date.now(), 0.5, 0.4);
|
|
119
122
|
}
|
|
120
123
|
db.close();
|
|
121
124
|
}
|
package/dist/mcp-stdio.js
CHANGED
|
@@ -160,8 +160,32 @@ try {
|
|
|
160
160
|
const handler = (0, mcp_handler_1.createMCPHandler)(memoryStore, eventLog, workspaceRoot);
|
|
161
161
|
handleMCPRequest = handler ? handler.handleMCPRequest : null;
|
|
162
162
|
console.log(`[cortex-mcp] Started with ${memoryStore.activeCount()} memories from ${dataDir}`);
|
|
163
|
-
//
|
|
164
|
-
|
|
163
|
+
// Non-blocking version check — notify if outdated
|
|
164
|
+
try {
|
|
165
|
+
const currentVersion = require('../package.json').version;
|
|
166
|
+
const https = require('https');
|
|
167
|
+
const req = https.get('https://registry.npmjs.org/cortex-mcp/latest', { timeout: 3000 }, (res) => {
|
|
168
|
+
let data = '';
|
|
169
|
+
res.on('data', (chunk) => data += chunk);
|
|
170
|
+
res.on('end', () => {
|
|
171
|
+
try {
|
|
172
|
+
const latest = JSON.parse(data).version;
|
|
173
|
+
if (latest && latest !== currentVersion) {
|
|
174
|
+
console.log(`[cortex-mcp] ⚡ Update available: v${currentVersion} → v${latest}. Run: npm install -g cortex-mcp@latest`);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
catch { }
|
|
178
|
+
});
|
|
179
|
+
});
|
|
180
|
+
req.on('error', () => { });
|
|
181
|
+
req.on('timeout', () => req.destroy());
|
|
182
|
+
}
|
|
183
|
+
catch { }
|
|
184
|
+
// Run memory decay AFTER 1 hour (not immediately — gives fresh memories time to be accessed)
|
|
185
|
+
setTimeout(() => {
|
|
186
|
+
(0, memory_decay_1.cleanupMemories)(memoryStore);
|
|
187
|
+
console.log('[cortex-mcp] First memory decay cycle completed');
|
|
188
|
+
}, 60 * 60 * 1000); // 1 hour delay
|
|
165
189
|
setInterval(() => (0, memory_decay_1.cleanupMemories)(memoryStore), 6 * 60 * 60 * 1000);
|
|
166
190
|
// Auto-scan project on first run (0 memories = brand new install)
|
|
167
191
|
if (memoryStore.activeCount() === 0) {
|
|
@@ -187,13 +211,23 @@ try {
|
|
|
187
211
|
catch (err) {
|
|
188
212
|
console.log(`[cortex-mcp] Dashboard unavailable: ${err.message}`);
|
|
189
213
|
}
|
|
190
|
-
//
|
|
214
|
+
// ─── License Status & Trial Countdown ─────────────────────────────────────
|
|
191
215
|
try {
|
|
216
|
+
// Get initial license (may be FREE if no cache yet)
|
|
192
217
|
(0, license_1.getLicense)();
|
|
193
|
-
|
|
218
|
+
// Wait up to 5s for online verification so the first status shows real plan
|
|
219
|
+
(0, license_1.waitForVerification)(1000).then((_verified) => {
|
|
220
|
+
console.log(`[cortex-mcp] ${(0, feature_gate_1.formatPlanStatus)()}`);
|
|
221
|
+
const trialStatus = (0, license_1.getTrialStatus)();
|
|
222
|
+
if (trialStatus) {
|
|
223
|
+
console.log(`[cortex-mcp] ${trialStatus}`);
|
|
224
|
+
}
|
|
225
|
+
}).catch(() => {
|
|
226
|
+
console.log(`[cortex-mcp] ${(0, feature_gate_1.formatPlanStatus)()}`);
|
|
227
|
+
});
|
|
194
228
|
}
|
|
195
229
|
catch (err) {
|
|
196
|
-
console.log(`[cortex-mcp]
|
|
230
|
+
console.log(`[cortex-mcp] License check skipped: ${err.message}`);
|
|
197
231
|
}
|
|
198
232
|
}
|
|
199
233
|
catch (err) {
|
|
@@ -237,21 +271,42 @@ rl.on('line', async (line) => {
|
|
|
237
271
|
}
|
|
238
272
|
});
|
|
239
273
|
rl.on('close', () => {
|
|
240
|
-
console.log('[cortex-mcp] stdin closed,
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
});
|
|
245
|
-
|
|
246
|
-
|
|
274
|
+
console.log('[cortex-mcp] stdin closed, saving session before shutdown...');
|
|
275
|
+
try {
|
|
276
|
+
// Save session summary so nothing from this conversation is lost
|
|
277
|
+
if (memoryStore) {
|
|
278
|
+
const { endSession } = require('./memory/session-tracker');
|
|
279
|
+
endSession(memoryStore);
|
|
280
|
+
const { storeRelationships } = require('./memory/file-relationships');
|
|
281
|
+
storeRelationships(memoryStore);
|
|
282
|
+
console.log('[cortex-mcp] Session saved successfully');
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
catch (err) {
|
|
286
|
+
console.log(`[cortex-mcp] Session save failed: ${err.message}`);
|
|
287
|
+
}
|
|
247
288
|
if (database)
|
|
248
289
|
database.close();
|
|
249
290
|
process.exit(0);
|
|
250
291
|
});
|
|
251
|
-
|
|
252
|
-
console.log(
|
|
292
|
+
function gracefulShutdown(signal) {
|
|
293
|
+
console.log(`[cortex-mcp] ${signal} received, saving session before shutdown...`);
|
|
294
|
+
try {
|
|
295
|
+
if (memoryStore) {
|
|
296
|
+
const { endSession } = require('./memory/session-tracker');
|
|
297
|
+
endSession(memoryStore);
|
|
298
|
+
const { storeRelationships } = require('./memory/file-relationships');
|
|
299
|
+
storeRelationships(memoryStore);
|
|
300
|
+
console.log('[cortex-mcp] Session saved successfully');
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
catch (err) {
|
|
304
|
+
console.log(`[cortex-mcp] Session save failed: ${err.message}`);
|
|
305
|
+
}
|
|
253
306
|
if (database)
|
|
254
307
|
database.close();
|
|
255
308
|
process.exit(0);
|
|
256
|
-
}
|
|
309
|
+
}
|
|
310
|
+
process.on('SIGTERM', () => gracefulShutdown('SIGTERM'));
|
|
311
|
+
process.on('SIGINT', () => gracefulShutdown('SIGINT'));
|
|
257
312
|
//# sourceMappingURL=mcp-stdio.js.map
|
package/dist/mcp-stdio.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-stdio.js","sourceRoot":"","sources":["../src/mcp-stdio.ts"],"names":[],"mappings":";;AACA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,+DAA+D;AAC/D,uCAAyB;AACzB,2CAA6B;AAE7B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,GAAG,CAAC;AAC5E,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAE3E,SAAS,SAAS,CAAC,GAAW;IAC1B,IAAI,CAAC,YAAY;QAAE,OAAO;IAC1B,IAAI,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3C,EAAE,CAAC,cAAc,CAAC,YAAY,EAAE,IAAI,SAAS,KAAK,GAAG,IAAI,CAAC,CAAC;IAC/D,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC;AAChC,CAAC;AAED,OAAO,CAAC,GAAG,GAAG,CAAC,GAAG,IAAW,EAAE,EAAE;IAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;IACjC,SAAS,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC;AAC9B,CAAC,CAAC;AACF,OAAO,CAAC,IAAI,GAAG,CAAC,GAAG,IAAW,EAAE,EAAE;IAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;IACjC,SAAS,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC;AAC9B,CAAC,CAAC;AACF,OAAO,CAAC,KAAK,GAAG,CAAC,GAAG,IAAW,EAAE,EAAE;IAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;IACjC,SAAS,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC;AAC/B,CAAC,CAAC;AAEF,IAAI,KAAK,EAAE,CAAC;IACR,SAAS,CAAC,gCAAgC,CAAC,CAAC;IAC5C,SAAS,CAAC,QAAQ,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACnC,SAAS,CAAC,SAAS,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACjD,CAAC;AAED,wDAAwD;AACxD,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,GAAG,EAAE,EAAE;IACpC,OAAO,CAAC,GAAG,CAAC,+CAA+C,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1E,OAAO,CAAC,GAAG,CAAC,uBAAuB,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;IAChD,8CAA8C;AAClD,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,MAAW,EAAE,EAAE;IAC7C,OAAO,CAAC,GAAG,CAAC,gDAAgD,MAAM,EAAE,OAAO,IAAI,MAAM,EAAE,CAAC,CAAC;IACzF,8CAA8C;AAClD,CAAC,CAAC,CAAC;AAGH,mDAAqC;AACrC,4CAAkD;AAClD,8CAA0C;AAC1C,oDAAgD;AAChD,sDAAwD;AACxD,kEAAkE;AAClE,wDAAwD;AACxD,
|
|
1
|
+
{"version":3,"file":"mcp-stdio.js","sourceRoot":"","sources":["../src/mcp-stdio.ts"],"names":[],"mappings":"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"}
|