claude-cortex 1.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/README.md +291 -0
- package/dist/api/events.d.ts +134 -0
- package/dist/api/events.d.ts.map +1 -0
- package/dist/api/events.js +73 -0
- package/dist/api/events.js.map +1 -0
- package/dist/api/visualization-server.d.ts +11 -0
- package/dist/api/visualization-server.d.ts.map +1 -0
- package/dist/api/visualization-server.js +653 -0
- package/dist/api/visualization-server.js.map +1 -0
- package/dist/context/project-context.d.ts +57 -0
- package/dist/context/project-context.d.ts.map +1 -0
- package/dist/context/project-context.js +135 -0
- package/dist/context/project-context.js.map +1 -0
- package/dist/database/init.d.ts +49 -0
- package/dist/database/init.d.ts.map +1 -0
- package/dist/database/init.js +336 -0
- package/dist/database/init.js.map +1 -0
- package/dist/embeddings/generator.d.ts +20 -0
- package/dist/embeddings/generator.d.ts.map +1 -0
- package/dist/embeddings/generator.js +77 -0
- package/dist/embeddings/generator.js.map +1 -0
- package/dist/embeddings/index.d.ts +2 -0
- package/dist/embeddings/index.d.ts.map +1 -0
- package/dist/embeddings/index.js +2 -0
- package/dist/embeddings/index.js.map +1 -0
- package/dist/errors.d.ts +74 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +131 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +83 -0
- package/dist/index.js.map +1 -0
- package/dist/memory/activation.d.ts +69 -0
- package/dist/memory/activation.d.ts.map +1 -0
- package/dist/memory/activation.js +168 -0
- package/dist/memory/activation.js.map +1 -0
- package/dist/memory/consolidate.d.ts +96 -0
- package/dist/memory/consolidate.d.ts.map +1 -0
- package/dist/memory/consolidate.js +400 -0
- package/dist/memory/consolidate.js.map +1 -0
- package/dist/memory/contradiction.d.ts +69 -0
- package/dist/memory/contradiction.d.ts.map +1 -0
- package/dist/memory/contradiction.js +286 -0
- package/dist/memory/contradiction.js.map +1 -0
- package/dist/memory/decay.d.ts +62 -0
- package/dist/memory/decay.d.ts.map +1 -0
- package/dist/memory/decay.js +184 -0
- package/dist/memory/decay.js.map +1 -0
- package/dist/memory/salience.d.ts +36 -0
- package/dist/memory/salience.d.ts.map +1 -0
- package/dist/memory/salience.js +200 -0
- package/dist/memory/salience.js.map +1 -0
- package/dist/memory/similarity.d.ts +57 -0
- package/dist/memory/similarity.d.ts.map +1 -0
- package/dist/memory/similarity.js +114 -0
- package/dist/memory/similarity.js.map +1 -0
- package/dist/memory/store.d.ts +170 -0
- package/dist/memory/store.d.ts.map +1 -0
- package/dist/memory/store.js +973 -0
- package/dist/memory/store.js.map +1 -0
- package/dist/memory/types.d.ts +91 -0
- package/dist/memory/types.d.ts.map +1 -0
- package/dist/memory/types.js +30 -0
- package/dist/memory/types.js.map +1 -0
- package/dist/server.d.ts +12 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +466 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/context.d.ts +135 -0
- package/dist/tools/context.d.ts.map +1 -0
- package/dist/tools/context.js +273 -0
- package/dist/tools/context.js.map +1 -0
- package/dist/tools/forget.d.ts +53 -0
- package/dist/tools/forget.d.ts.map +1 -0
- package/dist/tools/forget.js +179 -0
- package/dist/tools/forget.js.map +1 -0
- package/dist/tools/recall.d.ts +74 -0
- package/dist/tools/recall.d.ts.map +1 -0
- package/dist/tools/recall.js +140 -0
- package/dist/tools/recall.js.map +1 -0
- package/dist/tools/remember.d.ts +65 -0
- package/dist/tools/remember.d.ts.map +1 -0
- package/dist/tools/remember.js +147 -0
- package/dist/tools/remember.js.map +1 -0
- package/dist/worker/brain-worker.d.ts +100 -0
- package/dist/worker/brain-worker.d.ts.map +1 -0
- package/dist/worker/brain-worker.js +261 -0
- package/dist/worker/brain-worker.js.map +1 -0
- package/dist/worker/link-discovery.d.ts +47 -0
- package/dist/worker/link-discovery.d.ts.map +1 -0
- package/dist/worker/link-discovery.js +103 -0
- package/dist/worker/link-discovery.js.map +1 -0
- package/dist/worker/predictive-consolidation.d.ts +46 -0
- package/dist/worker/predictive-consolidation.d.ts.map +1 -0
- package/dist/worker/predictive-consolidation.js +110 -0
- package/dist/worker/predictive-consolidation.js.map +1 -0
- package/dist/worker/types.d.ts +91 -0
- package/dist/worker/types.d.ts.map +1 -0
- package/dist/worker/types.js +22 -0
- package/dist/worker/types.js.map +1 -0
- package/package.json +59 -0
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Context Tool
|
|
3
|
+
*
|
|
4
|
+
* Manages context injection and session handling.
|
|
5
|
+
* This is the key tool for solving the compaction problem.
|
|
6
|
+
*/
|
|
7
|
+
import { z } from 'zod';
|
|
8
|
+
import { generateContextSummary, formatContextSummary, startSession, endSession, getSuggestedContext, consolidate, previewConsolidation, exportMemories, importMemories, } from '../memory/consolidate.js';
|
|
9
|
+
import { getMemoryStats } from '../memory/store.js';
|
|
10
|
+
import { resolveProject } from '../context/project-context.js';
|
|
11
|
+
// Input schema for getting context
|
|
12
|
+
export const getContextSchema = z.object({
|
|
13
|
+
project: z.string().optional().describe('Project to get context for'),
|
|
14
|
+
query: z.string().optional().describe('Current query/task to find relevant context for'),
|
|
15
|
+
format: z.enum(['summary', 'detailed', 'raw']).optional().default('summary')
|
|
16
|
+
.describe('Output format'),
|
|
17
|
+
});
|
|
18
|
+
/**
|
|
19
|
+
* Execute the get_context tool
|
|
20
|
+
*/
|
|
21
|
+
export async function executeGetContext(input) {
|
|
22
|
+
try {
|
|
23
|
+
// Resolve project (auto-detect if not provided)
|
|
24
|
+
const resolvedProject = resolveProject(input.project);
|
|
25
|
+
const projectFilter = resolvedProject ?? undefined;
|
|
26
|
+
// Generate context summary
|
|
27
|
+
const summary = await generateContextSummary(projectFilter);
|
|
28
|
+
// If there's a query, also get specifically relevant memories
|
|
29
|
+
let relevantMemories = [];
|
|
30
|
+
if (input.query) {
|
|
31
|
+
relevantMemories = await getSuggestedContext(input.query, projectFilter, 5);
|
|
32
|
+
}
|
|
33
|
+
// Format based on requested format
|
|
34
|
+
let context;
|
|
35
|
+
switch (input.format) {
|
|
36
|
+
case 'raw':
|
|
37
|
+
context = JSON.stringify({ summary, relevantMemories }, null, 2);
|
|
38
|
+
break;
|
|
39
|
+
case 'detailed':
|
|
40
|
+
context = formatDetailedContext(summary, relevantMemories);
|
|
41
|
+
break;
|
|
42
|
+
case 'summary':
|
|
43
|
+
default:
|
|
44
|
+
context = formatContextSummary(summary);
|
|
45
|
+
if (relevantMemories.length > 0) {
|
|
46
|
+
context += '\n\n### Relevant to Current Query\n';
|
|
47
|
+
context += relevantMemories.map(m => `- **${m.title}**: ${m.content.slice(0, 100)}...`).join('\n');
|
|
48
|
+
}
|
|
49
|
+
break;
|
|
50
|
+
}
|
|
51
|
+
return {
|
|
52
|
+
success: true,
|
|
53
|
+
context,
|
|
54
|
+
summary,
|
|
55
|
+
relevantMemories,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
return {
|
|
60
|
+
success: false,
|
|
61
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Format detailed context output
|
|
67
|
+
*/
|
|
68
|
+
function formatDetailedContext(summary, relevant) {
|
|
69
|
+
const lines = [];
|
|
70
|
+
if (summary.project) {
|
|
71
|
+
lines.push(`# Project Context: ${summary.project}\n`);
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
lines.push('# Memory Context\n');
|
|
75
|
+
}
|
|
76
|
+
// Key decisions
|
|
77
|
+
if (summary.keyDecisions.length > 0) {
|
|
78
|
+
lines.push('## Architecture & Decisions\n');
|
|
79
|
+
for (const m of summary.keyDecisions) {
|
|
80
|
+
lines.push(`### ${m.title}`);
|
|
81
|
+
lines.push(m.content);
|
|
82
|
+
lines.push(`*Salience: ${(m.salience * 100).toFixed(0)}% | Category: ${m.category}*\n`);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
// Patterns
|
|
86
|
+
if (summary.activePatterns.length > 0) {
|
|
87
|
+
lines.push('## Active Patterns\n');
|
|
88
|
+
for (const m of summary.activePatterns) {
|
|
89
|
+
lines.push(`### ${m.title}`);
|
|
90
|
+
lines.push(m.content);
|
|
91
|
+
lines.push('');
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
// Pending
|
|
95
|
+
if (summary.pendingItems.length > 0) {
|
|
96
|
+
lines.push('## Pending Items\n');
|
|
97
|
+
for (const m of summary.pendingItems) {
|
|
98
|
+
lines.push(`- [ ] **${m.title}**: ${m.content.slice(0, 100)}`);
|
|
99
|
+
}
|
|
100
|
+
lines.push('');
|
|
101
|
+
}
|
|
102
|
+
// Relevant to query
|
|
103
|
+
if (relevant.length > 0) {
|
|
104
|
+
lines.push('## Relevant to Current Context\n');
|
|
105
|
+
for (const m of relevant) {
|
|
106
|
+
lines.push(`### ${m.title}`);
|
|
107
|
+
lines.push(m.content);
|
|
108
|
+
lines.push(`*Type: ${m.type} | Tags: ${m.tags.join(', ') || 'none'}*\n`);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
// Recent activity
|
|
112
|
+
if (summary.recentMemories.length > 0) {
|
|
113
|
+
lines.push('## Recent Activity\n');
|
|
114
|
+
for (const m of summary.recentMemories.slice(0, 5)) {
|
|
115
|
+
lines.push(`- **${m.title}** (${m.category})`);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return lines.join('\n');
|
|
119
|
+
}
|
|
120
|
+
// Session management
|
|
121
|
+
export const startSessionSchema = z.object({
|
|
122
|
+
project: z.string().optional().describe('Project for this session'),
|
|
123
|
+
});
|
|
124
|
+
export async function executeStartSession(input) {
|
|
125
|
+
try {
|
|
126
|
+
// Resolve project (auto-detect if not provided)
|
|
127
|
+
const resolvedProject = resolveProject(input.project);
|
|
128
|
+
const projectFilter = resolvedProject ?? undefined;
|
|
129
|
+
const { sessionId, context } = await startSession(projectFilter);
|
|
130
|
+
const formattedContext = formatContextSummary(context);
|
|
131
|
+
return {
|
|
132
|
+
success: true,
|
|
133
|
+
sessionId,
|
|
134
|
+
context: formattedContext,
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
catch (error) {
|
|
138
|
+
return {
|
|
139
|
+
success: false,
|
|
140
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
export const endSessionSchema = z.object({
|
|
145
|
+
sessionId: z.number().describe('Session ID to end'),
|
|
146
|
+
summary: z.string().optional().describe('Summary of what was accomplished'),
|
|
147
|
+
});
|
|
148
|
+
export function executeEndSession(input) {
|
|
149
|
+
try {
|
|
150
|
+
endSession(input.sessionId, input.summary);
|
|
151
|
+
// Run consolidation
|
|
152
|
+
const consolidationResult = consolidate();
|
|
153
|
+
return {
|
|
154
|
+
success: true,
|
|
155
|
+
consolidationResult,
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
catch (error) {
|
|
159
|
+
return {
|
|
160
|
+
success: false,
|
|
161
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
// Consolidation
|
|
166
|
+
export const consolidateSchema = z.object({
|
|
167
|
+
force: z.boolean().optional().default(false)
|
|
168
|
+
.describe('Force consolidation even if not due'),
|
|
169
|
+
dryRun: z.boolean().optional().default(false)
|
|
170
|
+
.describe('Preview what would happen without actually doing it'),
|
|
171
|
+
});
|
|
172
|
+
export function executeConsolidate(input) {
|
|
173
|
+
try {
|
|
174
|
+
if (input.dryRun) {
|
|
175
|
+
// Preview mode - don't actually do anything
|
|
176
|
+
const preview = previewConsolidation();
|
|
177
|
+
return {
|
|
178
|
+
success: true,
|
|
179
|
+
preview: {
|
|
180
|
+
toPromote: preview.toPromote.length,
|
|
181
|
+
toDelete: preview.toDelete.length,
|
|
182
|
+
promoteList: preview.toPromote.slice(0, 10).map(m => m.title),
|
|
183
|
+
deleteList: preview.toDelete.slice(0, 10).map(m => `${m.title} (${m.category})`),
|
|
184
|
+
},
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
const result = consolidate();
|
|
188
|
+
return { success: true, result };
|
|
189
|
+
}
|
|
190
|
+
catch (error) {
|
|
191
|
+
return {
|
|
192
|
+
success: false,
|
|
193
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
// Stats
|
|
198
|
+
export const statsSchema = z.object({
|
|
199
|
+
project: z.string().optional().describe('Get stats for specific project'),
|
|
200
|
+
});
|
|
201
|
+
export function executeStats(input) {
|
|
202
|
+
try {
|
|
203
|
+
// Resolve project (auto-detect if not provided)
|
|
204
|
+
const resolvedProject = resolveProject(input.project);
|
|
205
|
+
const projectFilter = resolvedProject ?? undefined;
|
|
206
|
+
const stats = getMemoryStats(projectFilter);
|
|
207
|
+
return { success: true, stats };
|
|
208
|
+
}
|
|
209
|
+
catch (error) {
|
|
210
|
+
return {
|
|
211
|
+
success: false,
|
|
212
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
export function formatStats(stats) {
|
|
217
|
+
const lines = [
|
|
218
|
+
'## Memory Statistics',
|
|
219
|
+
'',
|
|
220
|
+
`Total memories: ${stats.total}`,
|
|
221
|
+
` - Short-term: ${stats.shortTerm}`,
|
|
222
|
+
` - Long-term: ${stats.longTerm}`,
|
|
223
|
+
` - Episodic: ${stats.episodic}`,
|
|
224
|
+
'',
|
|
225
|
+
`Average salience: ${(stats.averageSalience * 100).toFixed(1)}%`,
|
|
226
|
+
'',
|
|
227
|
+
'### By Category',
|
|
228
|
+
];
|
|
229
|
+
for (const [category, count] of Object.entries(stats.byCategory)) {
|
|
230
|
+
lines.push(` - ${category}: ${count}`);
|
|
231
|
+
}
|
|
232
|
+
return lines.join('\n');
|
|
233
|
+
}
|
|
234
|
+
// Export/Import
|
|
235
|
+
export const exportSchema = z.object({
|
|
236
|
+
project: z.string().optional().describe('Export only memories for this project'),
|
|
237
|
+
});
|
|
238
|
+
export function executeExport(input) {
|
|
239
|
+
try {
|
|
240
|
+
// Resolve project (auto-detect if not provided)
|
|
241
|
+
const resolvedProject = resolveProject(input.project);
|
|
242
|
+
const projectFilter = resolvedProject ?? undefined;
|
|
243
|
+
const data = exportMemories(projectFilter);
|
|
244
|
+
const memories = JSON.parse(data);
|
|
245
|
+
return {
|
|
246
|
+
success: true,
|
|
247
|
+
data,
|
|
248
|
+
count: memories.length,
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
catch (error) {
|
|
252
|
+
return {
|
|
253
|
+
success: false,
|
|
254
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
255
|
+
};
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
export const importSchema = z.object({
|
|
259
|
+
data: z.string().describe('JSON data to import'),
|
|
260
|
+
});
|
|
261
|
+
export function executeImport(input) {
|
|
262
|
+
try {
|
|
263
|
+
const imported = importMemories(input.data);
|
|
264
|
+
return { success: true, imported };
|
|
265
|
+
}
|
|
266
|
+
catch (error) {
|
|
267
|
+
return {
|
|
268
|
+
success: false,
|
|
269
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
270
|
+
};
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/tools/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Forget Tool
|
|
3
|
+
*
|
|
4
|
+
* Delete memories - either individually or in bulk.
|
|
5
|
+
*/
|
|
6
|
+
import { z } from 'zod';
|
|
7
|
+
export declare const forgetSchema: z.ZodObject<{
|
|
8
|
+
id: z.ZodOptional<z.ZodNumber>;
|
|
9
|
+
query: z.ZodOptional<z.ZodString>;
|
|
10
|
+
category: z.ZodOptional<z.ZodEnum<["architecture", "pattern", "preference", "error", "context", "learning", "todo", "note", "relationship", "custom"]>>;
|
|
11
|
+
project: z.ZodOptional<z.ZodString>;
|
|
12
|
+
olderThan: z.ZodOptional<z.ZodNumber>;
|
|
13
|
+
belowSalience: z.ZodOptional<z.ZodNumber>;
|
|
14
|
+
dryRun: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
15
|
+
confirm: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
16
|
+
}, "strip", z.ZodTypeAny, {
|
|
17
|
+
dryRun: boolean;
|
|
18
|
+
confirm: boolean;
|
|
19
|
+
project?: string | undefined;
|
|
20
|
+
category?: "architecture" | "pattern" | "preference" | "error" | "context" | "learning" | "todo" | "note" | "relationship" | "custom" | undefined;
|
|
21
|
+
id?: number | undefined;
|
|
22
|
+
query?: string | undefined;
|
|
23
|
+
olderThan?: number | undefined;
|
|
24
|
+
belowSalience?: number | undefined;
|
|
25
|
+
}, {
|
|
26
|
+
project?: string | undefined;
|
|
27
|
+
category?: "architecture" | "pattern" | "preference" | "error" | "context" | "learning" | "todo" | "note" | "relationship" | "custom" | undefined;
|
|
28
|
+
id?: number | undefined;
|
|
29
|
+
query?: string | undefined;
|
|
30
|
+
olderThan?: number | undefined;
|
|
31
|
+
belowSalience?: number | undefined;
|
|
32
|
+
dryRun?: boolean | undefined;
|
|
33
|
+
confirm?: boolean | undefined;
|
|
34
|
+
}>;
|
|
35
|
+
export type ForgetInput = z.infer<typeof forgetSchema>;
|
|
36
|
+
/**
|
|
37
|
+
* Execute the forget tool
|
|
38
|
+
*/
|
|
39
|
+
export declare function executeForget(input: ForgetInput): Promise<{
|
|
40
|
+
success: boolean;
|
|
41
|
+
deleted?: number;
|
|
42
|
+
wouldDelete?: number;
|
|
43
|
+
memories?: {
|
|
44
|
+
id: number;
|
|
45
|
+
title: string;
|
|
46
|
+
}[];
|
|
47
|
+
error?: string;
|
|
48
|
+
}>;
|
|
49
|
+
/**
|
|
50
|
+
* Format the forget result for MCP response
|
|
51
|
+
*/
|
|
52
|
+
export declare function formatForgetResult(result: Awaited<ReturnType<typeof executeForget>>): string;
|
|
53
|
+
//# sourceMappingURL=forget.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"forget.d.ts","sourceRoot":"","sources":["../../src/tools/forget.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;EAevB,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAEvD;;GAEG;AACH,wBAAsB,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC;IAC/D,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC,CA+HD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC,GAAG,MAAM,CAsC5F"}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Forget Tool
|
|
3
|
+
*
|
|
4
|
+
* Delete memories - either individually or in bulk.
|
|
5
|
+
*/
|
|
6
|
+
import { z } from 'zod';
|
|
7
|
+
import { deleteMemory, searchMemories, getMemoryById } from '../memory/store.js';
|
|
8
|
+
import { getDatabase, withTransaction } from '../database/init.js';
|
|
9
|
+
import { MemoryNotFoundError, BulkDeleteSafetyError, formatErrorForMcp, } from '../errors.js';
|
|
10
|
+
import { resolveProject } from '../context/project-context.js';
|
|
11
|
+
// Input schema for the forget tool
|
|
12
|
+
export const forgetSchema = z.object({
|
|
13
|
+
id: z.number().optional().describe('Specific memory ID to delete'),
|
|
14
|
+
query: z.string().optional().describe('Delete memories matching this query'),
|
|
15
|
+
category: z.enum([
|
|
16
|
+
'architecture', 'pattern', 'preference', 'error',
|
|
17
|
+
'context', 'learning', 'todo', 'note', 'relationship', 'custom'
|
|
18
|
+
]).optional().describe('Delete all memories in this category'),
|
|
19
|
+
project: z.string().optional().describe('Delete all memories for this project'),
|
|
20
|
+
olderThan: z.number().optional().describe('Delete memories older than N days'),
|
|
21
|
+
belowSalience: z.number().min(0).max(1).optional()
|
|
22
|
+
.describe('Delete memories with salience below this threshold'),
|
|
23
|
+
dryRun: z.boolean().optional().default(false)
|
|
24
|
+
.describe('Preview what would be deleted without actually deleting'),
|
|
25
|
+
confirm: z.boolean().optional().default(false)
|
|
26
|
+
.describe('Confirm bulk deletion (required for operations affecting multiple memories)'),
|
|
27
|
+
});
|
|
28
|
+
/**
|
|
29
|
+
* Execute the forget tool
|
|
30
|
+
*/
|
|
31
|
+
export async function executeForget(input) {
|
|
32
|
+
try {
|
|
33
|
+
const db = getDatabase();
|
|
34
|
+
// Resolve project (auto-detect if not provided)
|
|
35
|
+
const resolvedProject = resolveProject(input.project);
|
|
36
|
+
// Single ID deletion
|
|
37
|
+
if (input.id !== undefined) {
|
|
38
|
+
const memory = getMemoryById(input.id);
|
|
39
|
+
if (!memory) {
|
|
40
|
+
const error = new MemoryNotFoundError(input.id);
|
|
41
|
+
return {
|
|
42
|
+
success: false,
|
|
43
|
+
error: error.toUserMessage(),
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
if (input.dryRun) {
|
|
47
|
+
return {
|
|
48
|
+
success: true,
|
|
49
|
+
wouldDelete: 1,
|
|
50
|
+
memories: [{ id: memory.id, title: memory.title }],
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
deleteMemory(input.id);
|
|
54
|
+
return {
|
|
55
|
+
success: true,
|
|
56
|
+
deleted: 1,
|
|
57
|
+
memories: [{ id: memory.id, title: memory.title }],
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
// Build bulk delete query
|
|
61
|
+
const conditions = [];
|
|
62
|
+
const params = [];
|
|
63
|
+
if (input.query) {
|
|
64
|
+
// Get IDs from FTS search
|
|
65
|
+
const results = await searchMemories({
|
|
66
|
+
query: input.query,
|
|
67
|
+
limit: 100,
|
|
68
|
+
includeDecayed: true,
|
|
69
|
+
});
|
|
70
|
+
if (results.length === 0) {
|
|
71
|
+
return { success: true, deleted: 0, memories: [] };
|
|
72
|
+
}
|
|
73
|
+
const ids = results.map(r => r.memory.id);
|
|
74
|
+
conditions.push(`id IN (${ids.map(() => '?').join(',')})`);
|
|
75
|
+
params.push(...ids);
|
|
76
|
+
}
|
|
77
|
+
if (input.category) {
|
|
78
|
+
conditions.push('category = ?');
|
|
79
|
+
params.push(input.category);
|
|
80
|
+
}
|
|
81
|
+
if (resolvedProject) {
|
|
82
|
+
conditions.push('project = ?');
|
|
83
|
+
params.push(resolvedProject);
|
|
84
|
+
}
|
|
85
|
+
if (input.olderThan !== undefined) {
|
|
86
|
+
conditions.push("created_at < datetime('now', ? || ' days')");
|
|
87
|
+
params.push(-input.olderThan);
|
|
88
|
+
}
|
|
89
|
+
if (input.belowSalience !== undefined) {
|
|
90
|
+
conditions.push('salience < ?');
|
|
91
|
+
params.push(input.belowSalience);
|
|
92
|
+
}
|
|
93
|
+
if (conditions.length === 0) {
|
|
94
|
+
return {
|
|
95
|
+
success: false,
|
|
96
|
+
error: 'No deletion criteria specified. Provide id, query, category, project, olderThan, or belowSalience.',
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
const whereClause = conditions.join(' AND ');
|
|
100
|
+
// Get affected memories
|
|
101
|
+
const affected = db.prepare(`SELECT id, title FROM memories WHERE ${whereClause}`).all(...params);
|
|
102
|
+
if (affected.length === 0) {
|
|
103
|
+
return { success: true, deleted: 0, memories: [] };
|
|
104
|
+
}
|
|
105
|
+
// Dry run - just show what would be deleted
|
|
106
|
+
if (input.dryRun) {
|
|
107
|
+
return {
|
|
108
|
+
success: true,
|
|
109
|
+
wouldDelete: affected.length,
|
|
110
|
+
memories: affected.slice(0, 20), // Limit preview
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
// Require confirmation for bulk deletes
|
|
114
|
+
if (affected.length > 1 && !input.confirm) {
|
|
115
|
+
const error = new BulkDeleteSafetyError(affected.length);
|
|
116
|
+
return {
|
|
117
|
+
success: false,
|
|
118
|
+
wouldDelete: affected.length,
|
|
119
|
+
memories: affected.slice(0, 10),
|
|
120
|
+
error: error.toUserMessage(),
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
// Execute deletion within a transaction for atomicity
|
|
124
|
+
withTransaction(() => {
|
|
125
|
+
db.prepare(`DELETE FROM memories WHERE ${whereClause}`).run(...params);
|
|
126
|
+
});
|
|
127
|
+
return {
|
|
128
|
+
success: true,
|
|
129
|
+
deleted: affected.length,
|
|
130
|
+
memories: affected,
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
catch (error) {
|
|
134
|
+
return {
|
|
135
|
+
success: false,
|
|
136
|
+
error: formatErrorForMcp(error),
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Format the forget result for MCP response
|
|
142
|
+
*/
|
|
143
|
+
export function formatForgetResult(result) {
|
|
144
|
+
if (!result.success) {
|
|
145
|
+
if (result.wouldDelete !== undefined) {
|
|
146
|
+
const preview = result.memories?.map(m => ` - [${m.id}] ${m.title}`).join('\n') || '';
|
|
147
|
+
return [
|
|
148
|
+
`⚠️ ${result.error}`,
|
|
149
|
+
'',
|
|
150
|
+
'Preview of memories to delete:',
|
|
151
|
+
preview,
|
|
152
|
+
result.memories && result.memories.length < (result.wouldDelete || 0)
|
|
153
|
+
? ` ... and ${(result.wouldDelete || 0) - result.memories.length} more`
|
|
154
|
+
: '',
|
|
155
|
+
].join('\n');
|
|
156
|
+
}
|
|
157
|
+
return `Failed to forget: ${result.error}`;
|
|
158
|
+
}
|
|
159
|
+
if (result.wouldDelete !== undefined) {
|
|
160
|
+
// Dry run result
|
|
161
|
+
const preview = result.memories?.map(m => ` - [${m.id}] ${m.title}`).join('\n') || '';
|
|
162
|
+
return [
|
|
163
|
+
`🔍 Dry run: Would delete ${result.wouldDelete} ${result.wouldDelete === 1 ? 'memory' : 'memories'}:`,
|
|
164
|
+
preview,
|
|
165
|
+
result.memories && result.memories.length < result.wouldDelete
|
|
166
|
+
? ` ... and ${result.wouldDelete - result.memories.length} more`
|
|
167
|
+
: '',
|
|
168
|
+
].join('\n');
|
|
169
|
+
}
|
|
170
|
+
if (result.deleted === 0) {
|
|
171
|
+
return 'No memories matched the deletion criteria.';
|
|
172
|
+
}
|
|
173
|
+
const deleted = result.memories?.map(m => ` - [${m.id}] ${m.title}`).join('\n') || '';
|
|
174
|
+
return [
|
|
175
|
+
`✓ Deleted ${result.deleted} ${result.deleted === 1 ? 'memory' : 'memories'}:`,
|
|
176
|
+
deleted,
|
|
177
|
+
].join('\n');
|
|
178
|
+
}
|
|
179
|
+
//# sourceMappingURL=forget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"forget.js","sourceRoot":"","sources":["../../src/tools/forget.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Recall Tool
|
|
3
|
+
*
|
|
4
|
+
* Search and retrieve memories using semantic search and filters.
|
|
5
|
+
*/
|
|
6
|
+
import { z } from 'zod';
|
|
7
|
+
import { Memory } from '../memory/types.js';
|
|
8
|
+
export declare const recallSchema: z.ZodObject<{
|
|
9
|
+
query: z.ZodOptional<z.ZodString>;
|
|
10
|
+
category: z.ZodOptional<z.ZodEnum<["architecture", "pattern", "preference", "error", "context", "learning", "todo", "note", "relationship", "custom"]>>;
|
|
11
|
+
type: z.ZodOptional<z.ZodEnum<["short_term", "long_term", "episodic"]>>;
|
|
12
|
+
project: z.ZodOptional<z.ZodString>;
|
|
13
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
14
|
+
limit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
15
|
+
includeDecayed: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
16
|
+
includeGlobal: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
17
|
+
mode: z.ZodDefault<z.ZodOptional<z.ZodEnum<["search", "recent", "important"]>>>;
|
|
18
|
+
}, "strip", z.ZodTypeAny, {
|
|
19
|
+
limit: number;
|
|
20
|
+
includeDecayed: boolean;
|
|
21
|
+
includeGlobal: boolean;
|
|
22
|
+
mode: "search" | "important" | "recent";
|
|
23
|
+
project?: string | undefined;
|
|
24
|
+
category?: "architecture" | "pattern" | "preference" | "error" | "context" | "learning" | "todo" | "note" | "relationship" | "custom" | undefined;
|
|
25
|
+
type?: "short_term" | "long_term" | "episodic" | undefined;
|
|
26
|
+
tags?: string[] | undefined;
|
|
27
|
+
query?: string | undefined;
|
|
28
|
+
}, {
|
|
29
|
+
project?: string | undefined;
|
|
30
|
+
category?: "architecture" | "pattern" | "preference" | "error" | "context" | "learning" | "todo" | "note" | "relationship" | "custom" | undefined;
|
|
31
|
+
limit?: number | undefined;
|
|
32
|
+
type?: "short_term" | "long_term" | "episodic" | undefined;
|
|
33
|
+
tags?: string[] | undefined;
|
|
34
|
+
query?: string | undefined;
|
|
35
|
+
includeDecayed?: boolean | undefined;
|
|
36
|
+
includeGlobal?: boolean | undefined;
|
|
37
|
+
mode?: "search" | "important" | "recent" | undefined;
|
|
38
|
+
}>;
|
|
39
|
+
export type RecallInput = z.infer<typeof recallSchema>;
|
|
40
|
+
/**
|
|
41
|
+
* Execute the recall tool
|
|
42
|
+
*/
|
|
43
|
+
export declare function executeRecall(input: RecallInput): Promise<{
|
|
44
|
+
success: boolean;
|
|
45
|
+
memories?: Memory[];
|
|
46
|
+
count?: number;
|
|
47
|
+
error?: string;
|
|
48
|
+
}>;
|
|
49
|
+
/**
|
|
50
|
+
* Format a single memory for display
|
|
51
|
+
*/
|
|
52
|
+
export declare function formatMemory(memory: Memory, verbose?: boolean): string;
|
|
53
|
+
/**
|
|
54
|
+
* Format the recall result for MCP response
|
|
55
|
+
*/
|
|
56
|
+
export declare function formatRecallResult(result: Awaited<ReturnType<typeof executeRecall>>, verbose?: boolean): string;
|
|
57
|
+
/**
|
|
58
|
+
* Get a single memory by ID
|
|
59
|
+
*/
|
|
60
|
+
export declare const getMemorySchema: z.ZodObject<{
|
|
61
|
+
id: z.ZodNumber;
|
|
62
|
+
}, "strip", z.ZodTypeAny, {
|
|
63
|
+
id: number;
|
|
64
|
+
}, {
|
|
65
|
+
id: number;
|
|
66
|
+
}>;
|
|
67
|
+
export declare function executeGetMemory(input: {
|
|
68
|
+
id: number;
|
|
69
|
+
}): {
|
|
70
|
+
success: boolean;
|
|
71
|
+
memory?: Memory;
|
|
72
|
+
error?: string;
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=recall.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recall.d.ts","sourceRoot":"","sources":["../../src/tools/recall.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,MAAM,EAAgB,MAAM,oBAAoB,CAAC;AAK1D,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkBvB,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAEvD;;GAEG;AACH,wBAAsB,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC;IAC/D,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC,CA+CD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,OAAe,GAAG,MAAM,CAqB7E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC,EACjD,OAAO,GAAE,OAAe,GACvB,MAAM,CAaR;AAED;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;EAE1B,CAAC;AAEH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG;IACvD,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAiBA"}
|