@aman_asmuei/amem 0.21.0 โ 0.22.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 +87 -37
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/tools/admin.d.ts +3 -0
- package/dist/tools/admin.js +809 -0
- package/dist/tools/admin.js.map +1 -0
- package/dist/tools/index.d.ts +1 -1
- package/dist/tools/index.js +3 -1
- package/dist/tools/index.js.map +1 -1
- package/package.json +4 -3
package/README.md
CHANGED
|
@@ -29,10 +29,10 @@
|
|
|
29
29
|
|
|
30
30
|
<table align="center">
|
|
31
31
|
<tr>
|
|
32
|
-
<td><strong>
|
|
32
|
+
<td><strong>94.8% R@5</strong><br/><sub>LongMemEval Oracle, 500q</sub></td>
|
|
33
33
|
<td><strong>0.08ms</strong><br/><sub>Search at 10k memories</sub></td>
|
|
34
34
|
<td><strong>29 MCP tools</strong><br/><sub>Full memory toolkit</sub></td>
|
|
35
|
-
<td><strong>
|
|
35
|
+
<td><strong>Powered by</strong><br/><sub><a href="https://github.com/amanasmuei/amem-core">amem-core</a></sub></td>
|
|
36
36
|
</tr>
|
|
37
37
|
</table>
|
|
38
38
|
|
|
@@ -71,6 +71,46 @@ No cloud. No API keys. Everything stays on your machine.
|
|
|
71
71
|
|
|
72
72
|
---
|
|
73
73
|
|
|
74
|
+
## ๐งฌ Powered by `amem-core`
|
|
75
|
+
|
|
76
|
+
`amem` is the **MCP server**. The actual memory engine โ embeddings, recall, knowledge graph, contradiction detection, reflection โ lives in a separate package: [`@aman_asmuei/amem-core`](https://github.com/amanasmuei/amem-core).
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
Claude Code / Copilot / Cursor / any MCP client
|
|
80
|
+
โ
|
|
81
|
+
โ MCP (stdio)
|
|
82
|
+
โผ
|
|
83
|
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
84
|
+
โ @aman_asmuei/amem (this pkg) โ
|
|
85
|
+
โ 29 MCP tools, CLI, hooks โ
|
|
86
|
+
โโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโ
|
|
87
|
+
โ imports
|
|
88
|
+
โผ
|
|
89
|
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
90
|
+
โ @aman_asmuei/amem-core โ
|
|
91
|
+
โ embeddings ยท HNSW ยท recall โ
|
|
92
|
+
โ knowledge graph ยท reflection โ
|
|
93
|
+
โ 91.0% R@5 on LongMemEval โ
|
|
94
|
+
โโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโ
|
|
95
|
+
โ
|
|
96
|
+
โผ
|
|
97
|
+
โโโโโโโโโโโโโโโโโโโโโโ
|
|
98
|
+
โ SQLite (one file) โ
|
|
99
|
+
โ ~/.amem/memory.db โ
|
|
100
|
+
โโโโโโโโโโโโโโโโโโโโโโ
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
| Package | Role | Install | Use case |
|
|
104
|
+
|---|---|---|---|
|
|
105
|
+
| **`@aman_asmuei/amem`** *(this)* | MCP server + CLI + hooks | `npm install -g @aman_asmuei/amem` | Plug into Claude Code, Copilot, Cursor, any MCP client |
|
|
106
|
+
| **`@aman_asmuei/amem-core`** | Pure TypeScript library, zero MCP deps | `npm install @aman_asmuei/amem-core` | Embed memory directly in your own Node app |
|
|
107
|
+
|
|
108
|
+
**Why the split?** The same engine powers `amem` (this MCP server), `aman-agent` (CLI), `aman-tg` (Telegram bot), and any other Node app you want to give memory to. All retrieval-quality improvements ship via `amem-core`. All MCP-tool changes ship via `amem`. They version independently.
|
|
109
|
+
|
|
110
|
+
> The **94.8% R@5** headline is the engine quality from `amem-core` โ exactly what you get whether you call it through this MCP server or import the library directly. The MCP wrapper does not change retrieval quality.
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
74
114
|
## Quick Start
|
|
75
115
|
|
|
76
116
|
<table>
|
|
@@ -619,42 +659,52 @@ amem-cli reset --confirm # Wipe all data
|
|
|
619
659
|
```
|
|
620
660
|
Your AI Tool
|
|
621
661
|
Claude Code / Copilot CLI / any MCP client
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
662
|
+
โ โ
|
|
663
|
+
โ MCP (stdio) โ Lifecycle Hooks
|
|
664
|
+
โผ โผ
|
|
665
|
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
666
|
+
โ @aman_asmuei/amem โ โ this package
|
|
667
|
+
โ โ
|
|
668
|
+
โ 29 Tools ยท 7 Resources ยท 2 Prompts
|
|
669
|
+
โ Slash commands ยท CLI ยท Hooks โ
|
|
670
|
+
โ Config: ~/.amem/config.json โ
|
|
671
|
+
โโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโ
|
|
672
|
+
โ imports
|
|
673
|
+
โผ
|
|
674
|
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
675
|
+
โ @aman_asmuei/amem-core โ โ the engine
|
|
676
|
+
โ โ
|
|
677
|
+
โ Multi-Strategy Retrieval โ
|
|
678
|
+
โ [HNSW] + [FTS5] + [Graph] + [Temporal]
|
|
679
|
+
โ + query expansion โ
|
|
680
|
+
โ + cross-encoder (opt-in) โ
|
|
681
|
+
โ โ
|
|
682
|
+
โ Self-Evolving Reflection โ
|
|
683
|
+
โ [Clustering] + [Contradictions]โ
|
|
684
|
+
โ + [Synthesis] + [Gap Detection]โ
|
|
685
|
+
โ โ
|
|
686
|
+
โ Embeddings: bge-small-en-v1.5 โ
|
|
687
|
+
โ 94.8% R@5 on LongMemEval โ
|
|
688
|
+
โโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโ
|
|
689
|
+
โ
|
|
690
|
+
โผ
|
|
691
|
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
692
|
+
โ SQLite + WAL + FTS5 โ
|
|
693
|
+
โ ~/.amem/memory.db โ
|
|
694
|
+
โ โ
|
|
695
|
+
โ memories (tiered) โ
|
|
696
|
+
โ conversation_log (raw) โ
|
|
697
|
+
โ memory_versions (history) โ
|
|
698
|
+
โ memory_relations (graph) โ
|
|
699
|
+
โ synthesis_lineage โ
|
|
700
|
+
โ knowledge_gaps โ
|
|
701
|
+
โ session_summaries โ
|
|
702
|
+
โ reminders โ
|
|
703
|
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
656
704
|
```
|
|
657
705
|
|
|
706
|
+
The **`amem` MCP server is a thin wrapper** around `amem-core`. The retrieval engine, embeddings, knowledge graph, reflection โ all live in `amem-core` and version independently. Bug in MCP wiring? Republish `amem`. Recall improvement? Republish `amem-core`. No coupling.
|
|
707
|
+
|
|
658
708
|
### Ranking Formula
|
|
659
709
|
|
|
660
710
|
```
|
|
@@ -771,7 +821,7 @@ PRs must pass CI before merge. See [Issues](https://github.com/amanasmuei/amem/i
|
|
|
771
821
|
---
|
|
772
822
|
|
|
773
823
|
<p align="center">
|
|
774
|
-
Built by <a href="https://github.com/amanasmuei"><strong>Aman Asmuei</strong></a>
|
|
824
|
+
Built with โค๏ธ in ๐ฒ๐พ Malaysia by <a href="https://github.com/amanasmuei"><strong>Aman Asmuei</strong></a>
|
|
775
825
|
</p>
|
|
776
826
|
|
|
777
827
|
<p align="center">
|
package/dist/index.js
CHANGED
|
@@ -118,7 +118,7 @@ const server = new McpServer({
|
|
|
118
118
|
name: "amem-mcp-server",
|
|
119
119
|
version: pkg.version,
|
|
120
120
|
});
|
|
121
|
-
registerTools(server, db, currentProject);
|
|
121
|
+
registerTools(server, db, currentProject, DB_PATH);
|
|
122
122
|
// Register MCP prompts โ these teach AI clients how to use Amem effectively
|
|
123
123
|
server.registerPrompt("extraction-guide", {
|
|
124
124
|
description: "Guidelines for what to extract from conversations into Amem memory",
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,809 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import fs from "node:fs";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
5
|
+
// @ts-ignore โ better-sqlite3 is a transitive dep via amem-core; no types bundled here.
|
|
6
|
+
import Database from "better-sqlite3";
|
|
7
|
+
import { AmemConfigSchema, RESTART_REQUIRED_CONFIG_KEYS, DANGEROUS_CONFIG_KEYS, runDiagnostics, generateEmbedding, loadConfig, saveConfig, getDefaultConfig, getConfigPath, resetConfigCache, syncFromClaude, exportForTeam, importFromTeam, syncToCopilot, } from "@aman_asmuei/amem-core";
|
|
8
|
+
// โโ Helpers โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
9
|
+
/**
|
|
10
|
+
* Create a timestamped backup of the DB file before any mutating repair.
|
|
11
|
+
* Reuses amem's existing backups/ directory convention.
|
|
12
|
+
* Returns the backup path, or null if the DB file doesn't exist.
|
|
13
|
+
*/
|
|
14
|
+
function createPreRepairBackup(dbPath) {
|
|
15
|
+
if (!fs.existsSync(dbPath))
|
|
16
|
+
return null;
|
|
17
|
+
const backupDir = path.join(path.dirname(dbPath), "backups");
|
|
18
|
+
fs.mkdirSync(backupDir, { recursive: true });
|
|
19
|
+
const backupPath = path.join(backupDir, `memory-prerepair-${Date.now()}.db`);
|
|
20
|
+
fs.copyFileSync(dbPath, backupPath);
|
|
21
|
+
return backupPath;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Run SQLite's integrity_check against a read-only second connection.
|
|
25
|
+
* Safe to call while the main amem server has the DB open (WAL mode allows concurrent readers).
|
|
26
|
+
*/
|
|
27
|
+
function runIntegrityCheck(dbPath) {
|
|
28
|
+
try {
|
|
29
|
+
const ro = new Database(dbPath, { readonly: true, fileMustExist: true });
|
|
30
|
+
const rows = ro.pragma("integrity_check");
|
|
31
|
+
ro.close();
|
|
32
|
+
const details = rows.map(r => r.integrity_check);
|
|
33
|
+
return { ok: details.length === 1 && details[0] === "ok", details };
|
|
34
|
+
}
|
|
35
|
+
catch (err) {
|
|
36
|
+
return { ok: false, details: [err instanceof Error ? err.message : String(err)] };
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Find relation edges whose fromId or toId no longer exist in memories.
|
|
41
|
+
*/
|
|
42
|
+
function findOrphanRelations(db) {
|
|
43
|
+
const orphans = [];
|
|
44
|
+
const relations = db.getAllRelations();
|
|
45
|
+
const existingIds = new Set(db.getAll().map(m => m.id));
|
|
46
|
+
for (const r of relations) {
|
|
47
|
+
const missingFrom = !existingIds.has(r.fromId);
|
|
48
|
+
const missingTo = !existingIds.has(r.toId);
|
|
49
|
+
if (missingFrom || missingTo) {
|
|
50
|
+
orphans.push({
|
|
51
|
+
id: r.id,
|
|
52
|
+
fromId: r.fromId,
|
|
53
|
+
toId: r.toId,
|
|
54
|
+
reason: [missingFrom && "fromId missing", missingTo && "toId missing"].filter(Boolean).join(", "),
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return orphans;
|
|
59
|
+
}
|
|
60
|
+
// โโ Config helpers โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
61
|
+
// AmemConfigSchema, RESTART_REQUIRED_CONFIG_KEYS, and DANGEROUS_CONFIG_KEYS
|
|
62
|
+
// are imported from amem-core โ single source of truth. Keep only the
|
|
63
|
+
// path-walking and diff helpers here; they're MCP-tool-specific.
|
|
64
|
+
/**
|
|
65
|
+
* Walk a dot-path into a plain object. Returns undefined if any segment is missing.
|
|
66
|
+
*/
|
|
67
|
+
function getByPath(obj, dotPath) {
|
|
68
|
+
if (dotPath === "")
|
|
69
|
+
return obj;
|
|
70
|
+
const parts = dotPath.split(".");
|
|
71
|
+
let cur = obj;
|
|
72
|
+
for (const p of parts) {
|
|
73
|
+
if (cur === null || typeof cur !== "object")
|
|
74
|
+
return undefined;
|
|
75
|
+
cur = cur[p];
|
|
76
|
+
}
|
|
77
|
+
return cur;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Immutably set a value at a dot-path, returning a new object.
|
|
81
|
+
* Throws if an intermediate segment is not an object.
|
|
82
|
+
*/
|
|
83
|
+
function setByPath(obj, dotPath, value) {
|
|
84
|
+
const parts = dotPath.split(".");
|
|
85
|
+
const clone = structuredClone(obj);
|
|
86
|
+
let cur = clone;
|
|
87
|
+
for (let i = 0; i < parts.length - 1; i++) {
|
|
88
|
+
const key = parts[i];
|
|
89
|
+
const next = cur[key];
|
|
90
|
+
if (next === null || typeof next !== "object" || Array.isArray(next)) {
|
|
91
|
+
throw new Error(`Path segment "${parts.slice(0, i + 1).join(".")}" is not an object`);
|
|
92
|
+
}
|
|
93
|
+
const nextClone = { ...next };
|
|
94
|
+
cur[key] = nextClone;
|
|
95
|
+
cur = nextClone;
|
|
96
|
+
}
|
|
97
|
+
cur[parts[parts.length - 1]] = value;
|
|
98
|
+
return clone;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Back up config.json before mutation. Returns backup path, or null if file doesn't exist.
|
|
102
|
+
*/
|
|
103
|
+
function backupConfig() {
|
|
104
|
+
const configPath = getConfigPath();
|
|
105
|
+
if (!fs.existsSync(configPath))
|
|
106
|
+
return null;
|
|
107
|
+
const backupPath = `${configPath}.prerepair-${Date.now()}.bak`;
|
|
108
|
+
fs.copyFileSync(configPath, backupPath);
|
|
109
|
+
return backupPath;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Compute a shallow diff between two configs at leaf paths.
|
|
113
|
+
*/
|
|
114
|
+
function diffConfig(before, after) {
|
|
115
|
+
const diffs = [];
|
|
116
|
+
function walk(a, b, prefix) {
|
|
117
|
+
if (typeof a !== "object" || a === null || Array.isArray(a) ||
|
|
118
|
+
typeof b !== "object" || b === null || Array.isArray(b)) {
|
|
119
|
+
if (JSON.stringify(a) !== JSON.stringify(b)) {
|
|
120
|
+
diffs.push({ key: prefix, from: a, to: b });
|
|
121
|
+
}
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
const keys = new Set([...Object.keys(a), ...Object.keys(b)]);
|
|
125
|
+
for (const k of keys) {
|
|
126
|
+
walk(a[k], b[k], prefix ? `${prefix}.${k}` : k);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
walk(before, after, "");
|
|
130
|
+
return diffs;
|
|
131
|
+
}
|
|
132
|
+
// โโ Registration โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
133
|
+
export function registerAdminTools(server, db, dbPath) {
|
|
134
|
+
// โโ memory_doctor (read-only) โโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
135
|
+
server.registerTool("memory_doctor", {
|
|
136
|
+
title: "Diagnose Memory Store",
|
|
137
|
+
description: `Run read-only health diagnostics on the amem database.
|
|
138
|
+
|
|
139
|
+
Reports:
|
|
140
|
+
- Total memories, embedding coverage, stale count, orphaned graph nodes
|
|
141
|
+
- Core tier token budget usage
|
|
142
|
+
- SQLite integrity_check result
|
|
143
|
+
- A list of issues with severity (info/warning/critical) and suggested fixes
|
|
144
|
+
|
|
145
|
+
This tool is completely safe โ it never mutates the database. Use the output
|
|
146
|
+
to decide whether to call memory_repair with specific actions.
|
|
147
|
+
|
|
148
|
+
Returns:
|
|
149
|
+
Structured diagnostic report with status, stats, and issues.`,
|
|
150
|
+
inputSchema: z.object({}).strict(),
|
|
151
|
+
annotations: {
|
|
152
|
+
readOnlyHint: true,
|
|
153
|
+
destructiveHint: false,
|
|
154
|
+
idempotentHint: true,
|
|
155
|
+
openWorldHint: false,
|
|
156
|
+
},
|
|
157
|
+
}, async () => {
|
|
158
|
+
try {
|
|
159
|
+
const report = runDiagnostics(db);
|
|
160
|
+
const integrity = runIntegrityCheck(dbPath);
|
|
161
|
+
const lines = [
|
|
162
|
+
`# Memory Doctor Report`,
|
|
163
|
+
``,
|
|
164
|
+
`**Status:** ${report.status}`,
|
|
165
|
+
`**Integrity:** ${integrity.ok ? "ok" : "FAILED โ " + integrity.details.join("; ")}`,
|
|
166
|
+
``,
|
|
167
|
+
`## Stats`,
|
|
168
|
+
`- Total memories: ${report.stats.totalMemories}`,
|
|
169
|
+
`- Embedding coverage: ${report.stats.embeddingCoverage}%`,
|
|
170
|
+
`- Core tier: ${report.stats.coreTierTokens} / ${report.stats.coreTierBudget} tokens`,
|
|
171
|
+
`- Stale memories: ${report.stats.staleCount}`,
|
|
172
|
+
`- Orphaned graph nodes: ${report.stats.orphanedGraphNodes}`,
|
|
173
|
+
`- Graph edges: ${report.stats.graphEdges}`,
|
|
174
|
+
`- Overdue reminders: ${report.stats.remindersOverdue}`,
|
|
175
|
+
``,
|
|
176
|
+
`## By Type`,
|
|
177
|
+
...Object.entries(report.stats.byType).map(([t, n]) => `- ${t}: ${n}`),
|
|
178
|
+
];
|
|
179
|
+
if (report.issues.length > 0) {
|
|
180
|
+
lines.push(``, `## Issues (${report.issues.length})`);
|
|
181
|
+
for (const issue of report.issues) {
|
|
182
|
+
lines.push(`- [${issue.severity.toUpperCase()}] ${issue.type}: ${issue.message}`);
|
|
183
|
+
lines.push(` โ ${issue.suggestion}`);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
else {
|
|
187
|
+
lines.push(``, `## Issues`, `None โ all checks passed.`);
|
|
188
|
+
}
|
|
189
|
+
return {
|
|
190
|
+
content: [{ type: "text", text: lines.join("\n") }],
|
|
191
|
+
structuredContent: {
|
|
192
|
+
status: report.status,
|
|
193
|
+
integrity: { ok: integrity.ok, details: integrity.details },
|
|
194
|
+
stats: report.stats,
|
|
195
|
+
issues: report.issues,
|
|
196
|
+
},
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
catch (error) {
|
|
200
|
+
return {
|
|
201
|
+
isError: true,
|
|
202
|
+
content: [{
|
|
203
|
+
type: "text",
|
|
204
|
+
text: `Error running diagnostics: ${error instanceof Error ? error.message : String(error)}`,
|
|
205
|
+
}],
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
});
|
|
209
|
+
// โโ memory_repair (dry-run by default) โโโโโโโโโโโโโโโโโ
|
|
210
|
+
server.registerTool("memory_repair", {
|
|
211
|
+
title: "Repair Memory Store",
|
|
212
|
+
description: `Perform safe, targeted repairs on the amem database.
|
|
213
|
+
|
|
214
|
+
Args:
|
|
215
|
+
- actions (array): Which repairs to perform. Supported:
|
|
216
|
+
* "integrity_check" โ read-only SQLite PRAGMA integrity_check
|
|
217
|
+
* "backfill_embeddings" โ generate embeddings for memories missing them
|
|
218
|
+
* "clean_orphan_relations"โ delete graph edges pointing to missing memories
|
|
219
|
+
- dryRun (boolean): If true (DEFAULT), report what WOULD change without
|
|
220
|
+
touching the database. Set to false to actually apply.
|
|
221
|
+
- limit (number, optional): Cap the number of items processed per action (default 100).
|
|
222
|
+
|
|
223
|
+
Safety:
|
|
224
|
+
- Dry-run is the default. You must explicitly pass dryRun:false to mutate.
|
|
225
|
+
- Before any mutation, a timestamped backup is written to <amem>/backups/
|
|
226
|
+
with filename memory-prerepair-<timestamp>.db
|
|
227
|
+
- Catastrophic corruption (integrity_check fails on the main DB) is NOT
|
|
228
|
+
handled here โ stop the MCP server and run 'amem repair' from the CLI.
|
|
229
|
+
|
|
230
|
+
Returns:
|
|
231
|
+
Per-action report of what was found and what changed, plus the backup path if created.`,
|
|
232
|
+
inputSchema: z.object({
|
|
233
|
+
actions: z.array(z.enum(["integrity_check", "backfill_embeddings", "clean_orphan_relations"])).min(1).describe("Which repair actions to run"),
|
|
234
|
+
dryRun: z.boolean().default(true).describe("If true, report without mutating. DEFAULT: true."),
|
|
235
|
+
limit: z.number().int().positive().max(1000).default(100).describe("Max items per action"),
|
|
236
|
+
}).strict(),
|
|
237
|
+
annotations: {
|
|
238
|
+
readOnlyHint: false,
|
|
239
|
+
destructiveHint: true,
|
|
240
|
+
idempotentHint: false,
|
|
241
|
+
openWorldHint: false,
|
|
242
|
+
},
|
|
243
|
+
}, async ({ actions, dryRun, limit }) => {
|
|
244
|
+
try {
|
|
245
|
+
const results = {};
|
|
246
|
+
let backupPath = null;
|
|
247
|
+
// Determine if any requested action is mutating
|
|
248
|
+
const mutating = !dryRun && actions.some(a => a !== "integrity_check");
|
|
249
|
+
if (mutating) {
|
|
250
|
+
backupPath = createPreRepairBackup(dbPath);
|
|
251
|
+
}
|
|
252
|
+
// โโ integrity_check (always read-only) โโ
|
|
253
|
+
if (actions.includes("integrity_check")) {
|
|
254
|
+
const r = runIntegrityCheck(dbPath);
|
|
255
|
+
results.integrity_check = r;
|
|
256
|
+
}
|
|
257
|
+
// โโ clean_orphan_relations โโ
|
|
258
|
+
if (actions.includes("clean_orphan_relations")) {
|
|
259
|
+
const orphans = findOrphanRelations(db).slice(0, limit);
|
|
260
|
+
let removed = 0;
|
|
261
|
+
if (!dryRun) {
|
|
262
|
+
for (const o of orphans) {
|
|
263
|
+
db.removeRelation(o.id);
|
|
264
|
+
removed++;
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
results.clean_orphan_relations = {
|
|
268
|
+
found: orphans.length,
|
|
269
|
+
removed,
|
|
270
|
+
dryRun,
|
|
271
|
+
sample: orphans.slice(0, 10),
|
|
272
|
+
};
|
|
273
|
+
}
|
|
274
|
+
// โโ backfill_embeddings โโ
|
|
275
|
+
if (actions.includes("backfill_embeddings")) {
|
|
276
|
+
const all = db.getAll();
|
|
277
|
+
const missing = all.filter(m => !m.embedding).slice(0, limit);
|
|
278
|
+
let filled = 0;
|
|
279
|
+
const filledIds = [];
|
|
280
|
+
if (!dryRun) {
|
|
281
|
+
for (const mem of missing) {
|
|
282
|
+
const emb = await generateEmbedding(mem.content);
|
|
283
|
+
if (!emb)
|
|
284
|
+
break; // embeddings unavailable โ stop cleanly
|
|
285
|
+
db.updateEmbedding(mem.id, emb);
|
|
286
|
+
filledIds.push(mem.id);
|
|
287
|
+
filled++;
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
results.backfill_embeddings = {
|
|
291
|
+
found: missing.length,
|
|
292
|
+
filled,
|
|
293
|
+
dryRun,
|
|
294
|
+
sampleIds: (dryRun ? missing.map(m => m.id) : filledIds).slice(0, 10),
|
|
295
|
+
};
|
|
296
|
+
}
|
|
297
|
+
// โโ Format text output โโ
|
|
298
|
+
const lines = [
|
|
299
|
+
`# Memory Repair Report`,
|
|
300
|
+
``,
|
|
301
|
+
`**Mode:** ${dryRun ? "DRY RUN (no changes written)" : "APPLIED"}`,
|
|
302
|
+
];
|
|
303
|
+
if (backupPath)
|
|
304
|
+
lines.push(`**Backup:** ${backupPath}`);
|
|
305
|
+
lines.push(``);
|
|
306
|
+
for (const action of actions) {
|
|
307
|
+
const r = results[action];
|
|
308
|
+
lines.push(`## ${action}`);
|
|
309
|
+
lines.push("```json");
|
|
310
|
+
lines.push(JSON.stringify(r, null, 2));
|
|
311
|
+
lines.push("```");
|
|
312
|
+
lines.push("");
|
|
313
|
+
}
|
|
314
|
+
if (dryRun && mutating === false && actions.some(a => a !== "integrity_check")) {
|
|
315
|
+
lines.push(`_To apply these changes, re-run with dryRun: false._`);
|
|
316
|
+
}
|
|
317
|
+
return {
|
|
318
|
+
content: [{ type: "text", text: lines.join("\n") }],
|
|
319
|
+
structuredContent: {
|
|
320
|
+
dryRun,
|
|
321
|
+
backupPath,
|
|
322
|
+
results,
|
|
323
|
+
},
|
|
324
|
+
};
|
|
325
|
+
}
|
|
326
|
+
catch (error) {
|
|
327
|
+
return {
|
|
328
|
+
isError: true,
|
|
329
|
+
content: [{
|
|
330
|
+
type: "text",
|
|
331
|
+
text: `Error during repair: ${error instanceof Error ? error.message : String(error)}`,
|
|
332
|
+
}],
|
|
333
|
+
};
|
|
334
|
+
}
|
|
335
|
+
});
|
|
336
|
+
// โโ memory_config (get/set with dry-run + whitelist) โโ
|
|
337
|
+
server.registerTool("memory_config", {
|
|
338
|
+
title: "Get / Set Amem Configuration",
|
|
339
|
+
description: `Read or modify the amem configuration file with safety guardrails.
|
|
340
|
+
|
|
341
|
+
Args:
|
|
342
|
+
- action (enum): "list" | "get" | "set" | "reset"
|
|
343
|
+
* "list" โ return the full effective config (no other args needed)
|
|
344
|
+
* "get" โ return a single value at the given key (requires 'key')
|
|
345
|
+
* "set" โ set a single value at the given key (requires 'key' + 'value')
|
|
346
|
+
* "reset" โ reset a single key to its default (requires 'key'), or
|
|
347
|
+
the ENTIRE config if key is omitted AND confirm:true is passed
|
|
348
|
+
- key (string, optional): Dot-path into config, e.g. "retrieval.semanticWeight"
|
|
349
|
+
- value (any, optional): New value for 'set' โ must match the expected type
|
|
350
|
+
- dryRun (boolean): If true (DEFAULT for set/reset), report what WOULD change
|
|
351
|
+
without writing. Set to false to apply.
|
|
352
|
+
- confirm (boolean): Required for full-config reset. Ignored otherwise.
|
|
353
|
+
- force (boolean): Required to modify "dangerous" keys (embeddingDimensions)
|
|
354
|
+
that would corrupt existing data. Default false.
|
|
355
|
+
|
|
356
|
+
Safety:
|
|
357
|
+
- Only whitelisted keys are accepted โ every value is validated against a
|
|
358
|
+
Zod schema mirroring AmemConfig. Unknown keys, wrong types, or out-of-range
|
|
359
|
+
values (weights must be 0..1, etc.) are rejected.
|
|
360
|
+
- Regex patterns in privacy.redactPatterns are compiled before save.
|
|
361
|
+
- Before any write, config.json is backed up to
|
|
362
|
+
<amem>/config.json.prerepair-<timestamp>.bak
|
|
363
|
+
- Dangerous keys (embeddingDimensions) require force:true โ changing them
|
|
364
|
+
would invalidate every stored embedding.
|
|
365
|
+
- Some keys (embeddingModel, embeddingCacheSize) require an amem server
|
|
366
|
+
restart to take effect; the response will flag this.
|
|
367
|
+
|
|
368
|
+
Returns:
|
|
369
|
+
Before/after diff, restart-required warnings, and the backup path if created.`,
|
|
370
|
+
inputSchema: z.object({
|
|
371
|
+
action: z.enum(["list", "get", "set", "reset"]),
|
|
372
|
+
key: z.string().optional().describe("Dot-path into config, e.g. 'retrieval.rerankerEnabled'"),
|
|
373
|
+
value: z.unknown().optional().describe("New value for 'set'"),
|
|
374
|
+
dryRun: z.boolean().default(true).describe("If true, report without writing. DEFAULT: true."),
|
|
375
|
+
confirm: z.boolean().default(false).describe("Required for full-config reset"),
|
|
376
|
+
force: z.boolean().default(false).describe("Required for dangerous keys like embeddingDimensions"),
|
|
377
|
+
}).strict(),
|
|
378
|
+
annotations: {
|
|
379
|
+
readOnlyHint: false,
|
|
380
|
+
destructiveHint: true,
|
|
381
|
+
idempotentHint: false,
|
|
382
|
+
openWorldHint: false,
|
|
383
|
+
},
|
|
384
|
+
}, async ({ action, key, value, dryRun, confirm, force }) => {
|
|
385
|
+
try {
|
|
386
|
+
const current = loadConfig();
|
|
387
|
+
const configPath = getConfigPath();
|
|
388
|
+
// โโ list โโ
|
|
389
|
+
if (action === "list") {
|
|
390
|
+
return {
|
|
391
|
+
content: [{
|
|
392
|
+
type: "text",
|
|
393
|
+
text: `# Amem Config\n\n**Path:** ${configPath}\n\n\`\`\`json\n${JSON.stringify(current, null, 2)}\n\`\`\``,
|
|
394
|
+
}],
|
|
395
|
+
structuredContent: { configPath, config: current },
|
|
396
|
+
};
|
|
397
|
+
}
|
|
398
|
+
// โโ get โโ
|
|
399
|
+
if (action === "get") {
|
|
400
|
+
if (!key) {
|
|
401
|
+
return { isError: true, content: [{ type: "text", text: `Error: 'get' requires 'key'` }] };
|
|
402
|
+
}
|
|
403
|
+
const val = getByPath(current, key);
|
|
404
|
+
if (val === undefined) {
|
|
405
|
+
return { isError: true, content: [{ type: "text", text: `Error: unknown key "${key}"` }] };
|
|
406
|
+
}
|
|
407
|
+
return {
|
|
408
|
+
content: [{ type: "text", text: `**${key}** = ${JSON.stringify(val)}` }],
|
|
409
|
+
structuredContent: { key, value: val },
|
|
410
|
+
};
|
|
411
|
+
}
|
|
412
|
+
// โโ set โโ
|
|
413
|
+
if (action === "set") {
|
|
414
|
+
if (!key) {
|
|
415
|
+
return { isError: true, content: [{ type: "text", text: `Error: 'set' requires 'key'` }] };
|
|
416
|
+
}
|
|
417
|
+
if (value === undefined) {
|
|
418
|
+
return { isError: true, content: [{ type: "text", text: `Error: 'set' requires 'value'` }] };
|
|
419
|
+
}
|
|
420
|
+
// Reject unknown keys early
|
|
421
|
+
if (getByPath(current, key) === undefined) {
|
|
422
|
+
return { isError: true, content: [{ type: "text", text: `Error: unknown key "${key}"` }] };
|
|
423
|
+
}
|
|
424
|
+
// Dangerous key gate
|
|
425
|
+
const topKey = key.split(".")[0];
|
|
426
|
+
if ((DANGEROUS_CONFIG_KEYS.has(key) || DANGEROUS_CONFIG_KEYS.has(topKey)) && !force) {
|
|
427
|
+
return {
|
|
428
|
+
isError: true,
|
|
429
|
+
content: [{
|
|
430
|
+
type: "text",
|
|
431
|
+
text: `Error: "${key}" is a dangerous key โ changing it would corrupt existing embeddings. Pass force:true to override (not recommended).`,
|
|
432
|
+
}],
|
|
433
|
+
};
|
|
434
|
+
}
|
|
435
|
+
// Build candidate and validate whole config
|
|
436
|
+
let candidate;
|
|
437
|
+
try {
|
|
438
|
+
candidate = setByPath(current, key, value);
|
|
439
|
+
}
|
|
440
|
+
catch (e) {
|
|
441
|
+
return {
|
|
442
|
+
isError: true,
|
|
443
|
+
content: [{ type: "text", text: `Error: ${e instanceof Error ? e.message : String(e)}` }],
|
|
444
|
+
};
|
|
445
|
+
}
|
|
446
|
+
const parsed = AmemConfigSchema.safeParse(candidate);
|
|
447
|
+
if (!parsed.success) {
|
|
448
|
+
return {
|
|
449
|
+
isError: true,
|
|
450
|
+
content: [{
|
|
451
|
+
type: "text",
|
|
452
|
+
text: `Validation failed:\n${parsed.error.issues.map(i => ` - ${i.path.join(".")}: ${i.message}`).join("\n")}`,
|
|
453
|
+
}],
|
|
454
|
+
};
|
|
455
|
+
}
|
|
456
|
+
const diffs = diffConfig(current, parsed.data);
|
|
457
|
+
const restartKeys = diffs
|
|
458
|
+
.map(d => d.key)
|
|
459
|
+
.filter(k => RESTART_REQUIRED_CONFIG_KEYS.has(k) || RESTART_REQUIRED_CONFIG_KEYS.has(k.split(".")[0]));
|
|
460
|
+
let backupPath = null;
|
|
461
|
+
if (!dryRun && diffs.length > 0) {
|
|
462
|
+
backupPath = backupConfig();
|
|
463
|
+
saveConfig(parsed.data);
|
|
464
|
+
resetConfigCache();
|
|
465
|
+
}
|
|
466
|
+
const lines = [
|
|
467
|
+
`# Config ${dryRun ? "DRY RUN" : "UPDATED"}`,
|
|
468
|
+
``,
|
|
469
|
+
`**Mode:** ${dryRun ? "DRY RUN (no changes written)" : "APPLIED"}`,
|
|
470
|
+
];
|
|
471
|
+
if (backupPath)
|
|
472
|
+
lines.push(`**Backup:** ${backupPath}`);
|
|
473
|
+
lines.push(``, `## Changes`);
|
|
474
|
+
if (diffs.length === 0) {
|
|
475
|
+
lines.push(`_No change โ value is already ${JSON.stringify(value)}._`);
|
|
476
|
+
}
|
|
477
|
+
else {
|
|
478
|
+
for (const d of diffs) {
|
|
479
|
+
lines.push(`- **${d.key}**: ${JSON.stringify(d.from)} โ ${JSON.stringify(d.to)}`);
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
if (restartKeys.length > 0) {
|
|
483
|
+
lines.push(``, `โ **Restart required** for these keys to fully take effect: ${restartKeys.join(", ")}`);
|
|
484
|
+
}
|
|
485
|
+
if (dryRun && diffs.length > 0) {
|
|
486
|
+
lines.push(``, `_To apply, re-run with dryRun: false._`);
|
|
487
|
+
}
|
|
488
|
+
return {
|
|
489
|
+
content: [{ type: "text", text: lines.join("\n") }],
|
|
490
|
+
structuredContent: { dryRun, backupPath, diffs, restartRequired: restartKeys },
|
|
491
|
+
};
|
|
492
|
+
}
|
|
493
|
+
// โโ reset โโ
|
|
494
|
+
if (action === "reset") {
|
|
495
|
+
const defaults = getDefaultConfig();
|
|
496
|
+
// Full-config reset requires explicit confirm
|
|
497
|
+
if (!key) {
|
|
498
|
+
if (!confirm) {
|
|
499
|
+
return {
|
|
500
|
+
isError: true,
|
|
501
|
+
content: [{
|
|
502
|
+
type: "text",
|
|
503
|
+
text: `Error: full-config reset requires confirm:true. To reset a single key, pass 'key'.`,
|
|
504
|
+
}],
|
|
505
|
+
};
|
|
506
|
+
}
|
|
507
|
+
const diffs = diffConfig(current, defaults);
|
|
508
|
+
let backupPath = null;
|
|
509
|
+
if (!dryRun && diffs.length > 0) {
|
|
510
|
+
backupPath = backupConfig();
|
|
511
|
+
saveConfig(defaults);
|
|
512
|
+
resetConfigCache();
|
|
513
|
+
}
|
|
514
|
+
const lines = [
|
|
515
|
+
`# Config ${dryRun ? "DRY RUN โ FULL RESET" : "FULL RESET APPLIED"}`,
|
|
516
|
+
``,
|
|
517
|
+
backupPath ? `**Backup:** ${backupPath}` : ``,
|
|
518
|
+
``,
|
|
519
|
+
`## Changes (${diffs.length})`,
|
|
520
|
+
...diffs.map(d => `- **${d.key}**: ${JSON.stringify(d.from)} โ ${JSON.stringify(d.to)}`),
|
|
521
|
+
].filter(Boolean);
|
|
522
|
+
if (dryRun && diffs.length > 0)
|
|
523
|
+
lines.push(``, `_To apply, re-run with dryRun: false._`);
|
|
524
|
+
return {
|
|
525
|
+
content: [{ type: "text", text: lines.join("\n") }],
|
|
526
|
+
structuredContent: { dryRun, backupPath, diffs, fullReset: true },
|
|
527
|
+
};
|
|
528
|
+
}
|
|
529
|
+
// Single-key reset
|
|
530
|
+
const defaultVal = getByPath(defaults, key);
|
|
531
|
+
if (defaultVal === undefined) {
|
|
532
|
+
return { isError: true, content: [{ type: "text", text: `Error: unknown key "${key}"` }] };
|
|
533
|
+
}
|
|
534
|
+
const topKey = key.split(".")[0];
|
|
535
|
+
if ((DANGEROUS_CONFIG_KEYS.has(key) || DANGEROUS_CONFIG_KEYS.has(topKey)) && !force) {
|
|
536
|
+
return {
|
|
537
|
+
isError: true,
|
|
538
|
+
content: [{ type: "text", text: `Error: "${key}" is a dangerous key โ pass force:true to override.` }],
|
|
539
|
+
};
|
|
540
|
+
}
|
|
541
|
+
const candidate = setByPath(current, key, defaultVal);
|
|
542
|
+
const parsed = AmemConfigSchema.safeParse(candidate);
|
|
543
|
+
if (!parsed.success) {
|
|
544
|
+
return {
|
|
545
|
+
isError: true,
|
|
546
|
+
content: [{
|
|
547
|
+
type: "text",
|
|
548
|
+
text: `Validation failed:\n${parsed.error.issues.map(i => ` - ${i.path.join(".")}: ${i.message}`).join("\n")}`,
|
|
549
|
+
}],
|
|
550
|
+
};
|
|
551
|
+
}
|
|
552
|
+
const diffs = diffConfig(current, parsed.data);
|
|
553
|
+
let backupPath = null;
|
|
554
|
+
if (!dryRun && diffs.length > 0) {
|
|
555
|
+
backupPath = backupConfig();
|
|
556
|
+
saveConfig(parsed.data);
|
|
557
|
+
resetConfigCache();
|
|
558
|
+
}
|
|
559
|
+
const lines = [
|
|
560
|
+
`# Config ${dryRun ? "DRY RUN" : "RESET"}: ${key}`,
|
|
561
|
+
``,
|
|
562
|
+
backupPath ? `**Backup:** ${backupPath}` : ``,
|
|
563
|
+
``,
|
|
564
|
+
diffs.length === 0
|
|
565
|
+
? `_Already at default (${JSON.stringify(defaultVal)})._`
|
|
566
|
+
: diffs.map(d => `- **${d.key}**: ${JSON.stringify(d.from)} โ ${JSON.stringify(d.to)}`).join("\n"),
|
|
567
|
+
].filter(Boolean);
|
|
568
|
+
if (dryRun && diffs.length > 0)
|
|
569
|
+
lines.push(``, `_To apply, re-run with dryRun: false._`);
|
|
570
|
+
return {
|
|
571
|
+
content: [{ type: "text", text: lines.join("\n") }],
|
|
572
|
+
structuredContent: { dryRun, backupPath, diffs, key, resetTo: defaultVal },
|
|
573
|
+
};
|
|
574
|
+
}
|
|
575
|
+
return {
|
|
576
|
+
isError: true,
|
|
577
|
+
content: [{ type: "text", text: `Unknown action: ${action}` }],
|
|
578
|
+
};
|
|
579
|
+
}
|
|
580
|
+
catch (error) {
|
|
581
|
+
return {
|
|
582
|
+
isError: true,
|
|
583
|
+
content: [{
|
|
584
|
+
type: "text",
|
|
585
|
+
text: `Error in memory_config: ${error instanceof Error ? error.message : String(error)}`,
|
|
586
|
+
}],
|
|
587
|
+
};
|
|
588
|
+
}
|
|
589
|
+
});
|
|
590
|
+
// โโ memory_sync (cross-system import/export) โโโโโโโโโโ
|
|
591
|
+
server.registerTool("memory_sync", {
|
|
592
|
+
title: "Sync Memory Across Systems",
|
|
593
|
+
description: `Import or export memories between amem and other systems.
|
|
594
|
+
|
|
595
|
+
Supported flows:
|
|
596
|
+
- source="claude" direction="in" โ import Claude Code auto-memory into amem
|
|
597
|
+
- source="copilot" direction="out" โ write amem section into .github/copilot-instructions.md
|
|
598
|
+
- source="team" direction="out" โ export a team-shareable JSON file
|
|
599
|
+
- source="team" direction="in" โ import a teammate's exported JSON file
|
|
600
|
+
|
|
601
|
+
Args:
|
|
602
|
+
- source (enum): "claude" | "copilot" | "team"
|
|
603
|
+
- direction (enum): "in" | "out" (only certain combinations are valid โ see above)
|
|
604
|
+
- dryRun (boolean): If true (DEFAULT), preview without writing. Set to false to apply.
|
|
605
|
+
- projectFilter (string, optional): For source="claude" direction="in", only sync
|
|
606
|
+
projects whose path contains this substring.
|
|
607
|
+
- filePath (string, optional): For source="team":
|
|
608
|
+
* direction="out": output directory (default: <amem>/team-exports/)
|
|
609
|
+
* direction="in": path to the exported JSON file (REQUIRED)
|
|
610
|
+
- userId (string, optional): For source="team" direction="out", tag the export
|
|
611
|
+
with this user id (REQUIRED for team export).
|
|
612
|
+
- minConfidence (number, optional): For source="copilot" or "team" direction="out",
|
|
613
|
+
only export memories at or above this confidence (0..1).
|
|
614
|
+
- projectDir (string, optional): For source="copilot" direction="out", target
|
|
615
|
+
project directory (default: current working directory).
|
|
616
|
+
|
|
617
|
+
Safety:
|
|
618
|
+
- Dry-run is the default for ALL directions. You must explicitly pass dryRun:false.
|
|
619
|
+
- Before any amem DB write (claude-in, team-in), the current DB file is copied to
|
|
620
|
+
<amem>/backups/memory-prerepair-<timestamp>.db
|
|
621
|
+
- Imports are idempotent โ running twice does not duplicate memories (content
|
|
622
|
+
hashes are checked).
|
|
623
|
+
- Team imports lower confidence by 0.1 and tag memories with team-sync + from:<user>.
|
|
624
|
+
- Claude imports are tagged with claude-sync and the original Claude type.
|
|
625
|
+
- Copilot output wraps the amem section in <!-- amem:start/end --> markers,
|
|
626
|
+
preserving any existing non-amem content in copilot-instructions.md.
|
|
627
|
+
|
|
628
|
+
Returns:
|
|
629
|
+
Per-source report with counts, affected items, and the backup path if created.`,
|
|
630
|
+
inputSchema: z.object({
|
|
631
|
+
source: z.enum(["claude", "copilot", "team"]),
|
|
632
|
+
direction: z.enum(["in", "out"]),
|
|
633
|
+
dryRun: z.boolean().default(true).describe("If true, preview without writing. DEFAULT: true."),
|
|
634
|
+
projectFilter: z.string().optional().describe("For claude-in: restrict to projects matching this substring"),
|
|
635
|
+
filePath: z.string().optional().describe("For team-in: path to import file. For team-out: output directory."),
|
|
636
|
+
userId: z.string().optional().describe("For team-out: required user identifier"),
|
|
637
|
+
minConfidence: z.number().min(0).max(1).optional().describe("Minimum confidence filter for exports"),
|
|
638
|
+
projectDir: z.string().optional().describe("For copilot-out: target project directory"),
|
|
639
|
+
}).strict(),
|
|
640
|
+
annotations: {
|
|
641
|
+
readOnlyHint: false,
|
|
642
|
+
destructiveHint: true,
|
|
643
|
+
idempotentHint: true, // Idempotent by content hash on 2nd run
|
|
644
|
+
openWorldHint: true, // Touches filesystem outside the amem dir
|
|
645
|
+
},
|
|
646
|
+
}, async ({ source, direction, dryRun, projectFilter, filePath, userId, minConfidence, projectDir }) => {
|
|
647
|
+
try {
|
|
648
|
+
// Validate source/direction combinations up front
|
|
649
|
+
const combo = `${source}/${direction}`;
|
|
650
|
+
const valid = new Set(["claude/in", "copilot/out", "team/in", "team/out"]);
|
|
651
|
+
if (!valid.has(combo)) {
|
|
652
|
+
return {
|
|
653
|
+
isError: true,
|
|
654
|
+
content: [{
|
|
655
|
+
type: "text",
|
|
656
|
+
text: `Error: unsupported combination source=${source} direction=${direction}. Valid: claude/in, copilot/out, team/in, team/out.`,
|
|
657
|
+
}],
|
|
658
|
+
};
|
|
659
|
+
}
|
|
660
|
+
// Pre-write backup for any flow that mutates the amem DB (claude-in, team-in)
|
|
661
|
+
let backupPath = null;
|
|
662
|
+
const mutatesDb = !dryRun && (combo === "claude/in" || combo === "team/in");
|
|
663
|
+
if (mutatesDb) {
|
|
664
|
+
backupPath = createPreRepairBackup(dbPath);
|
|
665
|
+
}
|
|
666
|
+
// โโ claude/in โโ
|
|
667
|
+
if (combo === "claude/in") {
|
|
668
|
+
const result = await syncFromClaude(db, projectFilter, dryRun);
|
|
669
|
+
const lines = [
|
|
670
|
+
`# Sync: Claude โ amem`,
|
|
671
|
+
``,
|
|
672
|
+
`**Mode:** ${dryRun ? "DRY RUN" : "APPLIED"}`,
|
|
673
|
+
];
|
|
674
|
+
if (backupPath)
|
|
675
|
+
lines.push(`**Backup:** ${backupPath}`);
|
|
676
|
+
lines.push(``, `- Projects scanned: ${result.projectsScanned}`, `- Imported: ${result.imported}`, `- Skipped: ${result.skipped}`, ``);
|
|
677
|
+
if (result.details.length > 0) {
|
|
678
|
+
lines.push(`## Details (first 20)`);
|
|
679
|
+
for (const d of result.details.slice(0, 20)) {
|
|
680
|
+
lines.push(`- [${d.action}] ${d.name} (${d.type})${d.reason ? ` โ ${d.reason}` : ""}`);
|
|
681
|
+
}
|
|
682
|
+
}
|
|
683
|
+
if (dryRun && result.imported > 0) {
|
|
684
|
+
lines.push(``, `_To apply, re-run with dryRun: false._`);
|
|
685
|
+
}
|
|
686
|
+
return {
|
|
687
|
+
content: [{ type: "text", text: lines.join("\n") }],
|
|
688
|
+
structuredContent: { source, direction, dryRun, backupPath, result },
|
|
689
|
+
};
|
|
690
|
+
}
|
|
691
|
+
// โโ team/out โโ
|
|
692
|
+
if (combo === "team/out") {
|
|
693
|
+
if (!userId) {
|
|
694
|
+
return {
|
|
695
|
+
isError: true,
|
|
696
|
+
content: [{ type: "text", text: `Error: team/out requires userId` }],
|
|
697
|
+
};
|
|
698
|
+
}
|
|
699
|
+
const outDir = filePath ?? path.join(path.dirname(dbPath), "team-exports");
|
|
700
|
+
if (dryRun) {
|
|
701
|
+
// Count what would be exported without writing
|
|
702
|
+
const all = db.getAll();
|
|
703
|
+
const allowed = ["correction", "decision", "pattern", "topology", "fact"];
|
|
704
|
+
const wouldExport = all.filter(m => {
|
|
705
|
+
if (m.type === "preference" && m.scope !== "global")
|
|
706
|
+
return false;
|
|
707
|
+
if (!allowed.includes(m.type))
|
|
708
|
+
return false;
|
|
709
|
+
if (minConfidence !== undefined && m.confidence < minConfidence)
|
|
710
|
+
return false;
|
|
711
|
+
return true;
|
|
712
|
+
});
|
|
713
|
+
return {
|
|
714
|
+
content: [{
|
|
715
|
+
type: "text",
|
|
716
|
+
text: `# Sync: amem โ team (DRY RUN)\n\n**Would export:** ${wouldExport.length} memories to ${outDir}\n\n_To apply, re-run with dryRun: false._`,
|
|
717
|
+
}],
|
|
718
|
+
structuredContent: { source, direction, dryRun, wouldExport: wouldExport.length, outDir },
|
|
719
|
+
};
|
|
720
|
+
}
|
|
721
|
+
const { file, count } = await exportForTeam(db, outDir, { userId, minConfidence });
|
|
722
|
+
return {
|
|
723
|
+
content: [{
|
|
724
|
+
type: "text",
|
|
725
|
+
text: `# Sync: amem โ team\n\n**Exported:** ${count} memories\n**File:** ${file}`,
|
|
726
|
+
}],
|
|
727
|
+
structuredContent: { source, direction, dryRun, file, count },
|
|
728
|
+
};
|
|
729
|
+
}
|
|
730
|
+
// โโ team/in โโ
|
|
731
|
+
if (combo === "team/in") {
|
|
732
|
+
if (!filePath) {
|
|
733
|
+
return {
|
|
734
|
+
isError: true,
|
|
735
|
+
content: [{ type: "text", text: `Error: team/in requires filePath (path to exported JSON)` }],
|
|
736
|
+
};
|
|
737
|
+
}
|
|
738
|
+
if (!fs.existsSync(filePath)) {
|
|
739
|
+
return {
|
|
740
|
+
isError: true,
|
|
741
|
+
content: [{ type: "text", text: `Error: file not found: ${filePath}` }],
|
|
742
|
+
};
|
|
743
|
+
}
|
|
744
|
+
const result = await importFromTeam(db, filePath, { dryRun });
|
|
745
|
+
const lines = [
|
|
746
|
+
`# Sync: team โ amem`,
|
|
747
|
+
``,
|
|
748
|
+
`**Mode:** ${dryRun ? "DRY RUN" : "APPLIED"}`,
|
|
749
|
+
`**From:** ${result.from}`,
|
|
750
|
+
];
|
|
751
|
+
if (backupPath)
|
|
752
|
+
lines.push(`**Backup:** ${backupPath}`);
|
|
753
|
+
lines.push(``, `- Imported: ${result.imported}`, `- Skipped (duplicates): ${result.skipped}`);
|
|
754
|
+
if (dryRun && result.imported > 0) {
|
|
755
|
+
lines.push(``, `_To apply, re-run with dryRun: false._`);
|
|
756
|
+
}
|
|
757
|
+
return {
|
|
758
|
+
content: [{ type: "text", text: lines.join("\n") }],
|
|
759
|
+
structuredContent: { source, direction, dryRun, backupPath, result },
|
|
760
|
+
};
|
|
761
|
+
}
|
|
762
|
+
// โโ copilot/out โโ
|
|
763
|
+
if (combo === "copilot/out") {
|
|
764
|
+
const result = syncToCopilot(db, {
|
|
765
|
+
projectDir,
|
|
766
|
+
minConfidence,
|
|
767
|
+
dryRun,
|
|
768
|
+
});
|
|
769
|
+
const lines = [
|
|
770
|
+
`# Sync: amem โ copilot-instructions.md`,
|
|
771
|
+
``,
|
|
772
|
+
`**Mode:** ${dryRun ? "DRY RUN" : "APPLIED"}`,
|
|
773
|
+
`**File:** ${result.file}`,
|
|
774
|
+
``,
|
|
775
|
+
`## Sections`,
|
|
776
|
+
`- Corrections: ${result.sections.corrections}`,
|
|
777
|
+
`- Decisions: ${result.sections.decisions}`,
|
|
778
|
+
`- Preferences: ${result.sections.preferences}`,
|
|
779
|
+
`- Patterns: ${result.sections.patterns}`,
|
|
780
|
+
`- Other: ${result.sections.other}`,
|
|
781
|
+
``,
|
|
782
|
+
`**Total exported:** ${result.memoriesExported}`,
|
|
783
|
+
];
|
|
784
|
+
if (dryRun && result.memoriesExported > 0) {
|
|
785
|
+
lines.push(``, `_To apply, re-run with dryRun: false._`);
|
|
786
|
+
}
|
|
787
|
+
return {
|
|
788
|
+
content: [{ type: "text", text: lines.join("\n") }],
|
|
789
|
+
structuredContent: { source, direction, dryRun, result },
|
|
790
|
+
};
|
|
791
|
+
}
|
|
792
|
+
// Unreachable
|
|
793
|
+
return {
|
|
794
|
+
isError: true,
|
|
795
|
+
content: [{ type: "text", text: `Unreachable: ${combo}` }],
|
|
796
|
+
};
|
|
797
|
+
}
|
|
798
|
+
catch (error) {
|
|
799
|
+
return {
|
|
800
|
+
isError: true,
|
|
801
|
+
content: [{
|
|
802
|
+
type: "text",
|
|
803
|
+
text: `Error in memory_sync: ${error instanceof Error ? error.message : String(error)}`,
|
|
804
|
+
}],
|
|
805
|
+
};
|
|
806
|
+
}
|
|
807
|
+
});
|
|
808
|
+
}
|
|
809
|
+
//# sourceMappingURL=admin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin.js","sourceRoot":"","sources":["../../src/tools/admin.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
2
|
import type { AmemDatabase } from "@aman_asmuei/amem-core";
|
|
3
3
|
export { TYPE_ORDER, formatAge, shortId, SHORT_ID_LENGTH, CHARACTER_LIMIT } from "@aman_asmuei/amem-core";
|
|
4
|
-
export declare function registerTools(server: McpServer, db: AmemDatabase, project: string): void;
|
|
4
|
+
export declare function registerTools(server: McpServer, db: AmemDatabase, project: string, dbPath: string): void;
|
package/dist/tools/index.js
CHANGED
|
@@ -4,9 +4,10 @@ import { registerLogTools } from "./log.js";
|
|
|
4
4
|
import { registerGraphTools } from "./graph.js";
|
|
5
5
|
import { registerReminderTools } from "./reminders.js";
|
|
6
6
|
import { registerAdvancedTools } from "./advanced.js";
|
|
7
|
+
import { registerAdminTools } from "./admin.js";
|
|
7
8
|
// Re-export helpers for external consumers (now from amem-core)
|
|
8
9
|
export { TYPE_ORDER, formatAge, shortId, SHORT_ID_LENGTH, CHARACTER_LIMIT } from "@aman_asmuei/amem-core";
|
|
9
|
-
export function registerTools(server, db, project) {
|
|
10
|
+
export function registerTools(server, db, project, dbPath) {
|
|
10
11
|
const GLOBAL_TYPES = ["correction", "preference", "pattern"];
|
|
11
12
|
function autoScope(type) {
|
|
12
13
|
return GLOBAL_TYPES.includes(type) ? "global" : project;
|
|
@@ -17,5 +18,6 @@ export function registerTools(server, db, project) {
|
|
|
17
18
|
registerGraphTools(server, db, project);
|
|
18
19
|
registerReminderTools(server, db);
|
|
19
20
|
registerAdvancedTools(server, db, project);
|
|
21
|
+
registerAdminTools(server, db, dbPath);
|
|
20
22
|
}
|
|
21
23
|
//# sourceMappingURL=index.js.map
|
package/dist/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,gEAAgE;AAChE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE1G,MAAM,UAAU,aAAa,CAAC,MAAiB,EAAE,EAAgB,EAAE,OAAe,EAAE,MAAc;IAChG,MAAM,YAAY,GAAsB,CAAC,YAAY,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;IAChF,SAAS,SAAS,CAAC,IAAqB;QACtC,OAAO,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;IAC1D,CAAC;IAED,mBAAmB,CAAC,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IACpD,oBAAoB,CAAC,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IAC1C,gBAAgB,CAAC,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IACtC,kBAAkB,CAAC,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IACxC,qBAAqB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAClC,qBAAqB,CAAC,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IAC3C,kBAAkB,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;AACzC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aman_asmuei/amem",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.22.0",
|
|
4
4
|
"description": "The memory layer for AI coding tools. Local-first, developer-specific, works everywhere.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -44,8 +44,9 @@
|
|
|
44
44
|
"node": ">=18.0.0"
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@aman_asmuei/amem-core": "^0.
|
|
48
|
-
"@modelcontextprotocol/sdk": "^1.25.2"
|
|
47
|
+
"@aman_asmuei/amem-core": "^0.5.0",
|
|
48
|
+
"@modelcontextprotocol/sdk": "^1.25.2",
|
|
49
|
+
"better-sqlite3": "^12.8.0"
|
|
49
50
|
},
|
|
50
51
|
"devDependencies": {
|
|
51
52
|
"@types/node": "^22.0.0",
|