shieldcortex 2.2.0 → 2.4.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/README.md +20 -5
- package/dist/api/events.d.ts +11 -1
- package/dist/api/events.d.ts.map +1 -1
- package/dist/api/events.js +3 -0
- package/dist/api/events.js.map +1 -1
- package/dist/api/visualization-server.d.ts.map +1 -1
- package/dist/api/visualization-server.js +60 -4
- package/dist/api/visualization-server.js.map +1 -1
- package/dist/database/init.d.ts.map +1 -1
- package/dist/database/init.js +44 -0
- package/dist/database/init.js.map +1 -1
- package/dist/defence/__tests__/access-control.test.d.ts +5 -0
- package/dist/defence/__tests__/access-control.test.d.ts.map +1 -0
- package/dist/defence/__tests__/access-control.test.js +89 -0
- package/dist/defence/__tests__/access-control.test.js.map +1 -0
- package/dist/defence/__tests__/agent-scorer.test.d.ts +5 -0
- package/dist/defence/__tests__/agent-scorer.test.d.ts.map +1 -0
- package/dist/defence/__tests__/agent-scorer.test.js +75 -0
- package/dist/defence/__tests__/agent-scorer.test.js.map +1 -0
- package/dist/defence/__tests__/env-detector.test.d.ts +5 -0
- package/dist/defence/__tests__/env-detector.test.d.ts.map +1 -0
- package/dist/defence/__tests__/env-detector.test.js +99 -0
- package/dist/defence/__tests__/env-detector.test.js.map +1 -0
- package/dist/defence/__tests__/pipeline.test.js +1 -0
- package/dist/defence/__tests__/pipeline.test.js.map +1 -1
- package/dist/defence/__tests__/trust.test.js +3 -2
- package/dist/defence/__tests__/trust.test.js.map +1 -1
- package/dist/defence/audit/index.d.ts +2 -2
- package/dist/defence/audit/index.d.ts.map +1 -1
- package/dist/defence/audit/index.js +1 -1
- package/dist/defence/audit/index.js.map +1 -1
- package/dist/defence/audit/logger.d.ts.map +1 -1
- package/dist/defence/audit/logger.js +3 -2
- package/dist/defence/audit/logger.js.map +1 -1
- package/dist/defence/audit/queries.d.ts +35 -1
- package/dist/defence/audit/queries.d.ts.map +1 -1
- package/dist/defence/audit/queries.js +93 -21
- package/dist/defence/audit/queries.js.map +1 -1
- package/dist/defence/pipeline.d.ts +1 -1
- package/dist/defence/pipeline.d.ts.map +1 -1
- package/dist/defence/pipeline.js +22 -1
- package/dist/defence/pipeline.js.map +1 -1
- package/dist/defence/quarantine/auto-expire.d.ts +15 -0
- package/dist/defence/quarantine/auto-expire.d.ts.map +1 -0
- package/dist/defence/quarantine/auto-expire.js +38 -0
- package/dist/defence/quarantine/auto-expire.js.map +1 -0
- package/dist/defence/trust/access-control.d.ts +29 -0
- package/dist/defence/trust/access-control.d.ts.map +1 -0
- package/dist/defence/trust/access-control.js +64 -0
- package/dist/defence/trust/access-control.js.map +1 -0
- package/dist/defence/trust/agent-scorer.d.ts +33 -0
- package/dist/defence/trust/agent-scorer.d.ts.map +1 -0
- package/dist/defence/trust/agent-scorer.js +55 -0
- package/dist/defence/trust/agent-scorer.js.map +1 -0
- package/dist/defence/trust/env-detector.d.ts +43 -0
- package/dist/defence/trust/env-detector.d.ts.map +1 -0
- package/dist/defence/trust/env-detector.js +99 -0
- package/dist/defence/trust/env-detector.js.map +1 -0
- package/dist/defence/trust/index.d.ts +6 -0
- package/dist/defence/trust/index.d.ts.map +1 -1
- package/dist/defence/trust/index.js +3 -0
- package/dist/defence/trust/index.js.map +1 -1
- package/dist/defence/trust/source-scorer.d.ts.map +1 -1
- package/dist/defence/trust/source-scorer.js +33 -15
- package/dist/defence/trust/source-scorer.js.map +1 -1
- package/dist/defence/types.d.ts +3 -0
- package/dist/defence/types.d.ts.map +1 -1
- package/dist/defence/types.js +1 -0
- package/dist/defence/types.js.map +1 -1
- package/dist/memory/consolidate.d.ts +1 -0
- package/dist/memory/consolidate.d.ts.map +1 -1
- package/dist/memory/consolidate.js +8 -1
- package/dist/memory/consolidate.js.map +1 -1
- package/dist/memory/store.d.ts +6 -6
- package/dist/memory/store.d.ts.map +1 -1
- package/dist/memory/store.js +139 -16
- package/dist/memory/store.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +82 -11
- package/dist/server.js.map +1 -1
- package/dist/setup/claude-md.d.ts +3 -1
- package/dist/setup/claude-md.d.ts.map +1 -1
- package/dist/setup/claude-md.js +47 -3
- package/dist/setup/claude-md.js.map +1 -1
- package/dist/setup/doctor.d.ts.map +1 -1
- package/dist/setup/doctor.js +7 -4
- package/dist/setup/doctor.js.map +1 -1
- package/dist/setup/uninstall.d.ts.map +1 -1
- package/dist/setup/uninstall.js +27 -0
- package/dist/setup/uninstall.js.map +1 -1
- package/dist/tools/context.d.ts +18 -0
- package/dist/tools/context.d.ts.map +1 -1
- package/dist/tools/context.js +4 -0
- package/dist/tools/context.js.map +1 -1
- package/dist/tools/forget.d.ts +18 -0
- package/dist/tools/forget.d.ts.map +1 -1
- package/dist/tools/forget.js +12 -1
- package/dist/tools/forget.js.map +1 -1
- package/dist/tools/recall.d.ts +38 -0
- package/dist/tools/recall.d.ts.map +1 -1
- package/dist/tools/recall.js +12 -5
- package/dist/tools/recall.js.map +1 -1
- package/dist/tools/remember.d.ts +2 -2
- package/package.json +1 -1
package/dist/memory/store.js
CHANGED
|
@@ -16,6 +16,9 @@ import { isPaused } from '../api/control.js';
|
|
|
16
16
|
import { extractFromMemory } from '../graph/extract.js';
|
|
17
17
|
import { processExtractionResult } from '../graph/resolve.js';
|
|
18
18
|
import { runDefencePipeline, storeFragmentationData } from '../defence/index.js';
|
|
19
|
+
import { checkAccess } from '../defence/trust/access-control.js';
|
|
20
|
+
import { scoreSource } from '../defence/trust/source-scorer.js';
|
|
21
|
+
import { logAudit } from '../defence/audit/logger.js';
|
|
19
22
|
// Anti-bloat: Maximum content size per memory (10KB)
|
|
20
23
|
const MAX_CONTENT_SIZE = 10 * 1024;
|
|
21
24
|
// Track truncation info globally for the last addMemory call
|
|
@@ -109,6 +112,63 @@ function detectGlobalPattern(content, category, tags) {
|
|
|
109
112
|
return true;
|
|
110
113
|
return false;
|
|
111
114
|
}
|
|
115
|
+
// ── Rate Limiter ──
|
|
116
|
+
// Tracks write attempts per source to prevent audit log flooding
|
|
117
|
+
const RATE_LIMIT_WINDOW_MS = 60_000; // 1 minute
|
|
118
|
+
const RATE_LIMIT_MAX = 20; // max writes per window per source
|
|
119
|
+
const rateLimitMap = new Map();
|
|
120
|
+
function checkRateLimit(source) {
|
|
121
|
+
const key = `${source.type}:${source.identifier}`;
|
|
122
|
+
const now = Date.now();
|
|
123
|
+
const entry = rateLimitMap.get(key);
|
|
124
|
+
if (!entry || now - entry.windowStart > RATE_LIMIT_WINDOW_MS) {
|
|
125
|
+
rateLimitMap.set(key, { count: 1, windowStart: now });
|
|
126
|
+
return true;
|
|
127
|
+
}
|
|
128
|
+
entry.count++;
|
|
129
|
+
if (entry.count > RATE_LIMIT_MAX) {
|
|
130
|
+
return false; // rate limited
|
|
131
|
+
}
|
|
132
|
+
return true;
|
|
133
|
+
}
|
|
134
|
+
// ── Read-Time Access Control ──
|
|
135
|
+
function logAccessDenial(memoryId, source, reason) {
|
|
136
|
+
const trust = scoreSource(source).score;
|
|
137
|
+
logAudit({
|
|
138
|
+
memory_id: memoryId,
|
|
139
|
+
project: null,
|
|
140
|
+
timestamp: new Date().toISOString(),
|
|
141
|
+
source_type: source.type,
|
|
142
|
+
source_identifier: source.identifier,
|
|
143
|
+
trust_score: trust,
|
|
144
|
+
sensitivity_level: 'INTERNAL',
|
|
145
|
+
firewall_result: 'BLOCK',
|
|
146
|
+
anomaly_score: 0,
|
|
147
|
+
threat_indicators: '[]',
|
|
148
|
+
blocked_patterns: '[]',
|
|
149
|
+
reason: `Access denied: ${reason}`,
|
|
150
|
+
fragmentation_score: null,
|
|
151
|
+
pipeline_duration_ms: 0,
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Filter raw DB rows by access control before converting to Memory objects.
|
|
156
|
+
* Returns only rows the source is allowed to read.
|
|
157
|
+
*/
|
|
158
|
+
function filterRowsByAccess(rows, source) {
|
|
159
|
+
return rows.filter(row => {
|
|
160
|
+
const policy = checkAccess({
|
|
161
|
+
id: row.id,
|
|
162
|
+
source: row.source,
|
|
163
|
+
sensitivity_level: row.sensitivity_level,
|
|
164
|
+
}, source, 'read');
|
|
165
|
+
if (!policy.canRead) {
|
|
166
|
+
logAccessDenial(row.id, source, policy.reason);
|
|
167
|
+
return false;
|
|
168
|
+
}
|
|
169
|
+
return true;
|
|
170
|
+
});
|
|
171
|
+
}
|
|
112
172
|
/**
|
|
113
173
|
* Error thrown when memory creation is paused
|
|
114
174
|
*/
|
|
@@ -133,8 +193,8 @@ export class MemoryBlockedError extends Error {
|
|
|
133
193
|
function quarantineMemory(input, source, result) {
|
|
134
194
|
try {
|
|
135
195
|
const db = getDatabase();
|
|
136
|
-
db.prepare(`INSERT INTO quarantine (
|
|
137
|
-
.run(input.title, input.content,
|
|
196
|
+
db.prepare(`INSERT INTO quarantine (original_title, original_content, project, source_type, source_identifier, reason, threat_indicators, anomaly_score, firewall_result, audit_id, status) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 'pending')`)
|
|
197
|
+
.run(input.title, input.content, input.project ?? null, source.type, source.identifier, result.firewall.reason, JSON.stringify(result.firewall.threatIndicators), result.firewall.anomalyScore, result.firewall.result, result.auditId);
|
|
138
198
|
}
|
|
139
199
|
catch (e) {
|
|
140
200
|
console.error('[shieldcortex] Failed to quarantine memory:', e);
|
|
@@ -148,10 +208,37 @@ export function addMemory(input, config = DEFAULT_CONFIG, source) {
|
|
|
148
208
|
if (isPaused()) {
|
|
149
209
|
throw new MemoryPausedError();
|
|
150
210
|
}
|
|
211
|
+
// RATE LIMITING: Block sources that exceed write rate
|
|
212
|
+
if (source && !checkRateLimit(source)) {
|
|
213
|
+
logAudit({
|
|
214
|
+
memory_id: null,
|
|
215
|
+
project: input.project ?? null,
|
|
216
|
+
timestamp: new Date().toISOString(),
|
|
217
|
+
source_type: source.type,
|
|
218
|
+
source_identifier: source.identifier,
|
|
219
|
+
trust_score: scoreSource(source).score,
|
|
220
|
+
sensitivity_level: 'INTERNAL',
|
|
221
|
+
firewall_result: 'BLOCK',
|
|
222
|
+
anomaly_score: 1.0,
|
|
223
|
+
threat_indicators: JSON.stringify(['rate_limit_exceeded']),
|
|
224
|
+
blocked_patterns: '[]',
|
|
225
|
+
reason: `Rate limited: exceeded ${RATE_LIMIT_MAX} writes/minute`,
|
|
226
|
+
fragmentation_score: null,
|
|
227
|
+
pipeline_duration_ms: 0,
|
|
228
|
+
});
|
|
229
|
+
throw new MemoryBlockedError(`Rate limited: exceeded ${RATE_LIMIT_MAX} writes per minute`);
|
|
230
|
+
}
|
|
151
231
|
// DEFENCE PIPELINE: Scan content before storage
|
|
152
232
|
let defenceResult = null;
|
|
153
233
|
if (source) {
|
|
154
|
-
defenceResult = runDefencePipeline(input.content, input.title, source);
|
|
234
|
+
defenceResult = runDefencePipeline(input.content, input.title, source, undefined, input.project);
|
|
235
|
+
// Auto-quarantine sub-agent writes (trust 0.5–0.7)
|
|
236
|
+
const trust = defenceResult.trust.score;
|
|
237
|
+
if (defenceResult.allowed && trust >= 0.5 && trust < 0.7) {
|
|
238
|
+
defenceResult.allowed = false;
|
|
239
|
+
defenceResult.firewall.result = 'QUARANTINE';
|
|
240
|
+
defenceResult.firewall.reason = `Sub-agent write (trust=${trust.toFixed(3)}) requires parent approval`;
|
|
241
|
+
}
|
|
155
242
|
if (!defenceResult.allowed) {
|
|
156
243
|
// Store in quarantine instead of memory
|
|
157
244
|
quarantineMemory(input, source, defenceResult);
|
|
@@ -261,11 +348,19 @@ export function addMemory(input, config = DEFAULT_CONFIG, source) {
|
|
|
261
348
|
/**
|
|
262
349
|
* Get a memory by ID
|
|
263
350
|
*/
|
|
264
|
-
export function getMemoryById(id) {
|
|
351
|
+
export function getMemoryById(id, source) {
|
|
265
352
|
const db = getDatabase();
|
|
266
353
|
const row = db.prepare('SELECT * FROM memories WHERE id = ?').get(id);
|
|
267
354
|
if (!row)
|
|
268
355
|
return null;
|
|
356
|
+
// ACCESS CONTROL: Check read permission
|
|
357
|
+
if (source) {
|
|
358
|
+
const policy = checkAccess({ id: row.id, source: row.source, sensitivity_level: row.sensitivity_level }, source, 'read');
|
|
359
|
+
if (!policy.canRead) {
|
|
360
|
+
logAccessDenial(id, source, policy.reason);
|
|
361
|
+
return null;
|
|
362
|
+
}
|
|
363
|
+
}
|
|
269
364
|
return rowToMemory(row);
|
|
270
365
|
}
|
|
271
366
|
/**
|
|
@@ -324,8 +419,19 @@ export function updateMemory(id, updates) {
|
|
|
324
419
|
/**
|
|
325
420
|
* Delete a memory
|
|
326
421
|
*/
|
|
327
|
-
export function deleteMemory(id) {
|
|
422
|
+
export function deleteMemory(id, source) {
|
|
328
423
|
const db = getDatabase();
|
|
424
|
+
// ACCESS CONTROL: Check delete permission
|
|
425
|
+
if (source) {
|
|
426
|
+
const row = db.prepare('SELECT id, source, sensitivity_level FROM memories WHERE id = ?').get(id);
|
|
427
|
+
if (row) {
|
|
428
|
+
const policy = checkAccess({ id: row.id, source: row.source, sensitivity_level: row.sensitivity_level }, source, 'delete');
|
|
429
|
+
if (!policy.canDelete) {
|
|
430
|
+
logAccessDenial(id, source, policy.reason);
|
|
431
|
+
return false;
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
}
|
|
329
435
|
// Get memory before deletion for event
|
|
330
436
|
const memory = getMemoryById(id);
|
|
331
437
|
const result = db.prepare('DELETE FROM memories WHERE id = ?').run(id);
|
|
@@ -340,9 +446,9 @@ export function deleteMemory(id) {
|
|
|
340
446
|
/**
|
|
341
447
|
* Access a memory (updates access count and timestamp, returns reinforced memory)
|
|
342
448
|
*/
|
|
343
|
-
export function accessMemory(id, config = DEFAULT_CONFIG) {
|
|
449
|
+
export function accessMemory(id, config = DEFAULT_CONFIG, source) {
|
|
344
450
|
const db = getDatabase();
|
|
345
|
-
const memory = getMemoryById(id);
|
|
451
|
+
const memory = getMemoryById(id, source);
|
|
346
452
|
if (!memory)
|
|
347
453
|
return null;
|
|
348
454
|
// Calculate new salience with reinforcement
|
|
@@ -653,7 +759,7 @@ function vectorSearch(queryEmbedding, limit, project, includeGlobal = true) {
|
|
|
653
759
|
* Now uses hybrid search combining FTS5 keywords with semantic vector matching
|
|
654
760
|
*/
|
|
655
761
|
let searchCount = 0;
|
|
656
|
-
export async function searchMemories(options, config = DEFAULT_CONFIG) {
|
|
762
|
+
export async function searchMemories(options, config = DEFAULT_CONFIG, source) {
|
|
657
763
|
if (++searchCount % 100 === 0) {
|
|
658
764
|
pruneActivationCache();
|
|
659
765
|
}
|
|
@@ -831,6 +937,19 @@ export async function searchMemories(options, config = DEFAULT_CONFIG) {
|
|
|
831
937
|
});
|
|
832
938
|
}
|
|
833
939
|
}
|
|
940
|
+
// ACCESS CONTROL: Filter results by source trust level
|
|
941
|
+
if (source) {
|
|
942
|
+
const db2 = getDatabase();
|
|
943
|
+
return finalResults.filter(result => {
|
|
944
|
+
const row = db2.prepare('SELECT source, sensitivity_level FROM memories WHERE id = ?').get(result.memory.id);
|
|
945
|
+
const policy = checkAccess({ id: result.memory.id, source: row?.source, sensitivity_level: row?.sensitivity_level }, source, 'read');
|
|
946
|
+
if (!policy.canRead) {
|
|
947
|
+
logAccessDenial(result.memory.id, source, policy.reason);
|
|
948
|
+
return false;
|
|
949
|
+
}
|
|
950
|
+
return true;
|
|
951
|
+
});
|
|
952
|
+
}
|
|
834
953
|
return finalResults;
|
|
835
954
|
}
|
|
836
955
|
/**
|
|
@@ -852,7 +971,7 @@ export function getProjectMemories(project, config = DEFAULT_CONFIG) {
|
|
|
852
971
|
/**
|
|
853
972
|
* Get recent memories
|
|
854
973
|
*/
|
|
855
|
-
export function getRecentMemories(limit = 10, project) {
|
|
974
|
+
export function getRecentMemories(limit = 10, project, source) {
|
|
856
975
|
const db = getDatabase();
|
|
857
976
|
let sql = 'SELECT * FROM memories';
|
|
858
977
|
const params = [];
|
|
@@ -861,9 +980,11 @@ export function getRecentMemories(limit = 10, project) {
|
|
|
861
980
|
params.push(project);
|
|
862
981
|
}
|
|
863
982
|
sql += ' ORDER BY last_accessed DESC LIMIT ?';
|
|
864
|
-
params.push(limit);
|
|
865
|
-
|
|
866
|
-
|
|
983
|
+
params.push(source ? limit * 2 : limit); // over-fetch when filtering
|
|
984
|
+
let rows = db.prepare(sql).all(...params);
|
|
985
|
+
if (source)
|
|
986
|
+
rows = filterRowsByAccess(rows, source);
|
|
987
|
+
return rows.slice(0, limit).map(rowToMemory);
|
|
867
988
|
}
|
|
868
989
|
/**
|
|
869
990
|
* Get memories by type
|
|
@@ -881,7 +1002,7 @@ export function getMemoriesByType(type, limit = 50) {
|
|
|
881
1002
|
/**
|
|
882
1003
|
* Get high-priority memories (for context injection)
|
|
883
1004
|
*/
|
|
884
|
-
export function getHighPriorityMemories(limit = 10, project) {
|
|
1005
|
+
export function getHighPriorityMemories(limit = 10, project, source) {
|
|
885
1006
|
const db = getDatabase();
|
|
886
1007
|
let sql = `
|
|
887
1008
|
SELECT * FROM memories
|
|
@@ -893,9 +1014,11 @@ export function getHighPriorityMemories(limit = 10, project) {
|
|
|
893
1014
|
params.push(project);
|
|
894
1015
|
}
|
|
895
1016
|
sql += ' ORDER BY salience DESC, last_accessed DESC LIMIT ?';
|
|
896
|
-
params.push(limit);
|
|
897
|
-
|
|
898
|
-
|
|
1017
|
+
params.push(source ? limit * 2 : limit);
|
|
1018
|
+
let rows = db.prepare(sql).all(...params);
|
|
1019
|
+
if (source)
|
|
1020
|
+
rows = filterRowsByAccess(rows, source);
|
|
1021
|
+
return rows.slice(0, limit).map(rowToMemory);
|
|
899
1022
|
}
|
|
900
1023
|
/**
|
|
901
1024
|
* Promote a memory from short-term to long-term
|
package/dist/memory/store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/memory/store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/memory/store.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA0EpE;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CA6tBvD"}
|
package/dist/server.js
CHANGED
|
@@ -22,6 +22,44 @@ import { handleGraphQuery, handleGraphEntities, handleGraphExplain } from './too
|
|
|
22
22
|
import { checkDatabaseSize } from './database/init.js';
|
|
23
23
|
import { queryAuditLogs, getAuditStats } from './defence/audit/index.js';
|
|
24
24
|
import { scanExistingMemories } from './defence/scanner/index.js';
|
|
25
|
+
import { resolveSource } from './defence/trust/env-detector.js';
|
|
26
|
+
import { logAudit } from './defence/audit/logger.js';
|
|
27
|
+
// Shared source schema for access control on MCP tools
|
|
28
|
+
const sourceParam = z.object({
|
|
29
|
+
type: z.enum(['user', 'cli', 'hook', 'email', 'web', 'agent', 'file', 'api']),
|
|
30
|
+
identifier: z.string(),
|
|
31
|
+
}).optional().describe('Caller identity for access control (agents should pass this)');
|
|
32
|
+
/**
|
|
33
|
+
* Resolve source for an MCP tool call, inferring from environment if not declared.
|
|
34
|
+
* Logs an audit warning when source is missing (gives operators visibility).
|
|
35
|
+
*/
|
|
36
|
+
function resolveToolSource(declaredSource, toolName) {
|
|
37
|
+
const { source, inferred, detection } = resolveSource(declaredSource);
|
|
38
|
+
if (inferred) {
|
|
39
|
+
try {
|
|
40
|
+
logAudit({
|
|
41
|
+
memory_id: null,
|
|
42
|
+
project: getActiveProject(),
|
|
43
|
+
timestamp: new Date().toISOString(),
|
|
44
|
+
source_type: source.type,
|
|
45
|
+
source_identifier: source.identifier,
|
|
46
|
+
trust_score: 0,
|
|
47
|
+
sensitivity_level: 'PUBLIC',
|
|
48
|
+
firewall_result: 'ALLOW',
|
|
49
|
+
anomaly_score: 0,
|
|
50
|
+
threat_indicators: '[]',
|
|
51
|
+
blocked_patterns: '[]',
|
|
52
|
+
reason: `SOURCE_MISSING: tool=${toolName}, inferred=${source.type}:${source.identifier} via ${detection?.method ?? 'default'} (confidence: ${detection?.confidence ?? 'low'})`,
|
|
53
|
+
fragmentation_score: null,
|
|
54
|
+
pipeline_duration_ms: null,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
// Audit logging should never break tool execution
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return source;
|
|
62
|
+
}
|
|
25
63
|
/**
|
|
26
64
|
* Create and configure the MCP server
|
|
27
65
|
*/
|
|
@@ -105,8 +143,10 @@ Modes: search (query-based), recent (by time), important (by salience)`, {
|
|
|
105
143
|
.describe('Include global memories in search results (default: true)'),
|
|
106
144
|
mode: z.enum(['search', 'recent', 'important']).optional().default('search')
|
|
107
145
|
.describe('Recall mode'),
|
|
146
|
+
source: sourceParam,
|
|
108
147
|
}, async (args) => {
|
|
109
|
-
const
|
|
148
|
+
const source = resolveToolSource(args.source, 'recall');
|
|
149
|
+
const result = await executeRecall({ ...args, source });
|
|
110
150
|
return {
|
|
111
151
|
content: [{ type: 'text', text: formatRecallResult(result, true) }],
|
|
112
152
|
};
|
|
@@ -127,8 +167,10 @@ Modes: search (query-based), recent (by time), important (by salience)`, {
|
|
|
127
167
|
.describe('Preview only'),
|
|
128
168
|
confirm: z.boolean().optional().default(false)
|
|
129
169
|
.describe('Confirm bulk delete'),
|
|
170
|
+
source: sourceParam,
|
|
130
171
|
}, async (args) => {
|
|
131
|
-
const
|
|
172
|
+
const source = resolveToolSource(args.source, 'forget');
|
|
173
|
+
const result = await executeForget({ ...args, source });
|
|
132
174
|
return {
|
|
133
175
|
content: [{ type: 'text', text: formatForgetResult(result) }],
|
|
134
176
|
};
|
|
@@ -142,8 +184,10 @@ Returns: architecture decisions, patterns, pending items, recent activity.`, {
|
|
|
142
184
|
query: z.string().optional().describe('Current task for relevant context'),
|
|
143
185
|
format: z.enum(['summary', 'detailed', 'raw']).optional().default('summary')
|
|
144
186
|
.describe('Output format'),
|
|
187
|
+
source: sourceParam,
|
|
145
188
|
}, async (args) => {
|
|
146
|
-
const
|
|
189
|
+
const source = resolveToolSource(args.source, 'get_context');
|
|
190
|
+
const result = await executeGetContext({ ...args, source });
|
|
147
191
|
return {
|
|
148
192
|
content: [{
|
|
149
193
|
type: 'text',
|
|
@@ -234,8 +278,10 @@ Returns: architecture decisions, patterns, pending items, recent activity.`, {
|
|
|
234
278
|
// Get Memory by ID
|
|
235
279
|
server.tool('get_memory', 'Get a specific memory by ID.', {
|
|
236
280
|
id: z.number().describe('Memory ID'),
|
|
281
|
+
source: sourceParam,
|
|
237
282
|
}, async (args) => {
|
|
238
|
-
const
|
|
283
|
+
const source = resolveToolSource(args.source, 'get_memory');
|
|
284
|
+
const result = executeGetMemory({ ...args, source });
|
|
239
285
|
return {
|
|
240
286
|
content: [{
|
|
241
287
|
type: 'text',
|
|
@@ -410,31 +456,56 @@ but you can use this tool to check for new contradictions at any time.`, {
|
|
|
410
456
|
});
|
|
411
457
|
// Quarantine Review
|
|
412
458
|
server.tool('quarantine_review', 'Review and manage quarantined memories', {
|
|
413
|
-
action: z.enum(['list', 'approve', 'reject']),
|
|
459
|
+
action: z.enum(['list', 'approve', 'reject', 'approve_by_source']),
|
|
414
460
|
quarantineId: z.number().optional().describe('ID for approve/reject'),
|
|
461
|
+
sourceIdentifier: z.string().optional().describe('Source identifier for batch approve (e.g. "user-spawned>task-1")'),
|
|
415
462
|
notes: z.string().optional(),
|
|
416
463
|
}, async (args) => {
|
|
417
464
|
const db = (await import('./database/init.js')).getDatabase();
|
|
418
465
|
if (args.action === 'list') {
|
|
419
466
|
const items = db.prepare('SELECT * FROM quarantine WHERE status = ? ORDER BY created_at DESC LIMIT 50').all('pending');
|
|
420
|
-
const text = items.length === 0 ? 'No items in quarantine.' : items.map((q) => `[${q.id}] ${q.
|
|
467
|
+
const text = items.length === 0 ? 'No items in quarantine.' : items.map((q) => `[${q.id}] ${q.original_title || 'Untitled'} | source: ${q.source_type}:${q.source_identifier} | reason: ${q.reason}`).join('\n');
|
|
421
468
|
return { content: [{ type: 'text', text }] };
|
|
422
469
|
}
|
|
423
470
|
else if (args.action === 'approve' && args.quarantineId) {
|
|
424
|
-
db.prepare('UPDATE quarantine SET status = ?,
|
|
425
|
-
// Optionally promote to memory
|
|
471
|
+
db.prepare('UPDATE quarantine SET status = ?, reviewed_by = ?, reviewed_at = CURRENT_TIMESTAMP WHERE id = ?').run('approved', args.notes || 'mcp', args.quarantineId);
|
|
426
472
|
const q = db.prepare('SELECT * FROM quarantine WHERE id = ?').get(args.quarantineId);
|
|
427
473
|
if (q) {
|
|
428
474
|
const { addMemory: add } = await import('./memory/store.js');
|
|
429
|
-
|
|
475
|
+
try {
|
|
476
|
+
add({ title: q.original_title, content: q.original_content, project: q.project });
|
|
477
|
+
}
|
|
478
|
+
catch { /* may fail defence */ }
|
|
430
479
|
}
|
|
431
480
|
return { content: [{ type: 'text', text: `Quarantine item ${args.quarantineId} approved.` }] };
|
|
432
481
|
}
|
|
433
482
|
else if (args.action === 'reject' && args.quarantineId) {
|
|
434
|
-
db.prepare('UPDATE quarantine SET status = ?,
|
|
483
|
+
db.prepare('UPDATE quarantine SET status = ?, reviewed_by = ?, reviewed_at = CURRENT_TIMESTAMP WHERE id = ?').run('rejected', args.notes || 'mcp', args.quarantineId);
|
|
435
484
|
return { content: [{ type: 'text', text: `Quarantine item ${args.quarantineId} rejected.` }] };
|
|
436
485
|
}
|
|
437
|
-
|
|
486
|
+
else if (args.action === 'approve_by_source' && args.sourceIdentifier) {
|
|
487
|
+
const items = db.prepare('SELECT id FROM quarantine WHERE status = ? AND source_identifier = ?').all('pending', args.sourceIdentifier);
|
|
488
|
+
if (items.length === 0) {
|
|
489
|
+
return { content: [{ type: 'text', text: `No pending quarantine items from source "${args.sourceIdentifier}".` }] };
|
|
490
|
+
}
|
|
491
|
+
db.prepare('UPDATE quarantine SET status = ?, reviewed_by = ?, reviewed_at = CURRENT_TIMESTAMP WHERE status = ? AND source_identifier = ?')
|
|
492
|
+
.run('approved', args.notes || 'batch-approve', 'pending', args.sourceIdentifier);
|
|
493
|
+
// Promote each to memory
|
|
494
|
+
const { addMemory: add } = await import('./memory/store.js');
|
|
495
|
+
let promoted = 0;
|
|
496
|
+
for (const item of items) {
|
|
497
|
+
const q = db.prepare('SELECT * FROM quarantine WHERE id = ?').get(item.id);
|
|
498
|
+
if (q) {
|
|
499
|
+
try {
|
|
500
|
+
add({ title: q.original_title, content: q.original_content, project: q.project });
|
|
501
|
+
promoted++;
|
|
502
|
+
}
|
|
503
|
+
catch { /* may fail defence */ }
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
return { content: [{ type: 'text', text: `Batch approved ${items.length} items from "${args.sourceIdentifier}" (${promoted} promoted to memory).` }] };
|
|
507
|
+
}
|
|
508
|
+
return { content: [{ type: 'text', text: 'Invalid action or missing required parameters.' }] };
|
|
438
509
|
});
|
|
439
510
|
// Defence Stats
|
|
440
511
|
server.tool('defence_stats', 'Get defence system statistics', {
|