@aman_asmuei/amem 0.5.1 → 0.7.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 +49 -7
- package/dist/cli.js +7 -7
- package/dist/cli.js.map +1 -1
- package/dist/database.d.ts +15 -0
- package/dist/database.js +129 -19
- package/dist/database.js.map +1 -1
- package/dist/database.test.d.ts +1 -0
- package/dist/database.test.js +275 -0
- package/dist/database.test.js.map +1 -0
- package/dist/embeddings.js +30 -2
- package/dist/embeddings.js.map +1 -1
- package/dist/embeddings.test.d.ts +1 -0
- package/dist/embeddings.test.js +106 -0
- package/dist/embeddings.test.js.map +1 -0
- package/dist/index.js +158 -80
- package/dist/index.js.map +1 -1
- package/dist/memory.d.ts +19 -2
- package/dist/memory.js +108 -35
- package/dist/memory.js.map +1 -1
- package/dist/memory.test.d.ts +1 -0
- package/dist/memory.test.js +171 -0
- package/dist/memory.test.js.map +1 -0
- package/dist/schemas.d.ts +209 -31
- package/dist/schemas.js +54 -1
- package/dist/schemas.js.map +1 -1
- package/dist/tools/graph.d.ts +3 -0
- package/dist/tools/graph.js +344 -0
- package/dist/tools/graph.js.map +1 -0
- package/dist/tools/helpers.d.ts +7 -0
- package/dist/tools/helpers.js +23 -0
- package/dist/tools/helpers.js.map +1 -0
- package/dist/tools/index.d.ts +4 -0
- package/dist/tools/index.js +19 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/log.d.ts +3 -0
- package/dist/tools/log.js +244 -0
- package/dist/tools/log.js.map +1 -0
- package/dist/tools/memory.d.ts +4 -0
- package/dist/tools/memory.js +1245 -0
- package/dist/tools/memory.js.map +1 -0
- package/dist/tools/reminders.d.ts +3 -0
- package/dist/tools/reminders.js +228 -0
- package/dist/tools/reminders.js.map +1 -0
- package/dist/tools/versions.d.ts +3 -0
- package/dist/tools/versions.js +118 -0
- package/dist/tools/versions.js.map +1 -0
- package/dist/tools.test.d.ts +1 -0
- package/dist/tools.test.js +217 -0
- package/dist/tools.test.js.map +1 -0
- package/package.json +1 -2
- package/dist/tools.d.ts +0 -6
- package/dist/tools.js +0 -1885
- package/dist/tools.js.map +0 -1
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
import { describe, it, expect, beforeEach, afterEach } from "vitest";
|
|
2
|
+
import { createDatabase } from "./database.js";
|
|
3
|
+
import { recallMemories, detectConflict } from "./memory.js";
|
|
4
|
+
import { formatAge, TYPE_ORDER } from "./tools/index.js";
|
|
5
|
+
/**
|
|
6
|
+
* Since registerTools requires an McpServer instance (complex to mock),
|
|
7
|
+
* we test the underlying logic that tools invoke: database operations,
|
|
8
|
+
* recallMemories, detectConflict, formatAge, and TYPE_ORDER.
|
|
9
|
+
* This exercises the same critical paths the tool handlers do.
|
|
10
|
+
*/
|
|
11
|
+
let db;
|
|
12
|
+
beforeEach(() => {
|
|
13
|
+
db = createDatabase(":memory:");
|
|
14
|
+
});
|
|
15
|
+
afterEach(() => {
|
|
16
|
+
db.close();
|
|
17
|
+
});
|
|
18
|
+
describe("TYPE_ORDER", () => {
|
|
19
|
+
it("puts corrections first, then decisions", () => {
|
|
20
|
+
expect(TYPE_ORDER[0]).toBe("correction");
|
|
21
|
+
expect(TYPE_ORDER[1]).toBe("decision");
|
|
22
|
+
});
|
|
23
|
+
it("contains all 6 types", () => {
|
|
24
|
+
expect(TYPE_ORDER).toHaveLength(6);
|
|
25
|
+
expect(TYPE_ORDER).toContain("correction");
|
|
26
|
+
expect(TYPE_ORDER).toContain("decision");
|
|
27
|
+
expect(TYPE_ORDER).toContain("pattern");
|
|
28
|
+
expect(TYPE_ORDER).toContain("preference");
|
|
29
|
+
expect(TYPE_ORDER).toContain("topology");
|
|
30
|
+
expect(TYPE_ORDER).toContain("fact");
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
describe("formatAge", () => {
|
|
34
|
+
it("formats minutes ago", () => {
|
|
35
|
+
const tenMinAgo = Date.now() - 10 * 60 * 1000;
|
|
36
|
+
expect(formatAge(tenMinAgo)).toBe("10m ago");
|
|
37
|
+
});
|
|
38
|
+
it("formats hours ago", () => {
|
|
39
|
+
const threeHoursAgo = Date.now() - 3 * 60 * 60 * 1000;
|
|
40
|
+
expect(formatAge(threeHoursAgo)).toBe("3h ago");
|
|
41
|
+
});
|
|
42
|
+
it("formats days ago", () => {
|
|
43
|
+
const fiveDaysAgo = Date.now() - 5 * 24 * 60 * 60 * 1000;
|
|
44
|
+
expect(formatAge(fiveDaysAgo)).toBe("5d ago");
|
|
45
|
+
});
|
|
46
|
+
it("formats months ago", () => {
|
|
47
|
+
const sixtyDaysAgo = Date.now() - 60 * 24 * 60 * 60 * 1000;
|
|
48
|
+
expect(formatAge(sixtyDaysAgo)).toBe("2mo ago");
|
|
49
|
+
});
|
|
50
|
+
it("formats 0 minutes for just-now timestamp", () => {
|
|
51
|
+
expect(formatAge(Date.now())).toBe("0m ago");
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
describe("memory_store critical path (via db + recall)", () => {
|
|
55
|
+
it("stores a memory and it becomes retrievable via recall", () => {
|
|
56
|
+
const id = db.insertMemory({
|
|
57
|
+
content: "Never mock the database in integration tests",
|
|
58
|
+
type: "correction",
|
|
59
|
+
tags: ["testing"],
|
|
60
|
+
confidence: 1.0,
|
|
61
|
+
source: "conversation",
|
|
62
|
+
embedding: null,
|
|
63
|
+
scope: "global",
|
|
64
|
+
});
|
|
65
|
+
const results = recallMemories(db, { query: "database testing", limit: 10 });
|
|
66
|
+
expect(results.length).toBeGreaterThanOrEqual(1);
|
|
67
|
+
expect(results.some(r => r.id === id)).toBe(true);
|
|
68
|
+
});
|
|
69
|
+
it("conflict detection: identical content not flagged", () => {
|
|
70
|
+
const result = detectConflict("same content", "same content", 1.0);
|
|
71
|
+
expect(result.isConflict).toBe(false);
|
|
72
|
+
});
|
|
73
|
+
it("conflict detection: similar but different content IS flagged", () => {
|
|
74
|
+
const result = detectConflict("Use pnpm for packages", "Use npm for packages", 0.9);
|
|
75
|
+
expect(result.isConflict).toBe(true);
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
describe("memory_recall critical path", () => {
|
|
79
|
+
it("returns ranked results with scores", () => {
|
|
80
|
+
db.insertMemory({ content: "TypeScript strict mode is required", type: "correction", tags: ["typescript"], confidence: 1.0, source: "t", embedding: null, scope: "global" });
|
|
81
|
+
db.insertMemory({ content: "Auth module is in src/auth", type: "topology", tags: ["auth"], confidence: 0.7, source: "t", embedding: null, scope: "global" });
|
|
82
|
+
db.insertMemory({ content: "Prefers TypeScript over JavaScript", type: "preference", tags: ["typescript"], confidence: 0.8, source: "t", embedding: null, scope: "global" });
|
|
83
|
+
const results = recallMemories(db, { query: "TypeScript", limit: 10 });
|
|
84
|
+
// TypeScript memories should be ranked higher due to keyword matching
|
|
85
|
+
expect(results.length).toBeGreaterThanOrEqual(2);
|
|
86
|
+
// All results have a score property
|
|
87
|
+
for (const r of results) {
|
|
88
|
+
expect(r.score).toBeGreaterThanOrEqual(0);
|
|
89
|
+
expect(typeof r.score).toBe("number");
|
|
90
|
+
}
|
|
91
|
+
// Verify sorted by score descending
|
|
92
|
+
for (let i = 0; i < results.length - 1; i++) {
|
|
93
|
+
expect(results[i].score).toBeGreaterThanOrEqual(results[i + 1].score);
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
it("returns empty array for no matches", () => {
|
|
97
|
+
const results = recallMemories(db, { query: "nonexistent topic xyz", limit: 10 });
|
|
98
|
+
expect(results).toHaveLength(0);
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
describe("memory_inject critical path", () => {
|
|
102
|
+
it("corrections and decisions are retrievable and properly ordered", () => {
|
|
103
|
+
db.insertMemory({ content: "Never use unsafe dynamic code execution", type: "correction", tags: ["security"], confidence: 1.0, source: "t", embedding: null, scope: "global" });
|
|
104
|
+
db.insertMemory({ content: "Use REST not GraphQL", type: "decision", tags: ["api"], confidence: 0.9, source: "t", embedding: null, scope: "global" });
|
|
105
|
+
db.insertMemory({ content: "Prefer early returns", type: "pattern", tags: ["style"], confidence: 0.7, source: "t", embedding: null, scope: "global" });
|
|
106
|
+
// memory_inject calls recallMemories then filters by type
|
|
107
|
+
const results = recallMemories(db, { query: null, limit: 30 });
|
|
108
|
+
const corrections = results.filter(r => r.type === "correction");
|
|
109
|
+
const decisions = results.filter(r => r.type === "decision");
|
|
110
|
+
const patterns = results.filter(r => r.type === "pattern");
|
|
111
|
+
expect(corrections).toHaveLength(1);
|
|
112
|
+
expect(corrections[0].content).toBe("Never use unsafe dynamic code execution");
|
|
113
|
+
expect(decisions).toHaveLength(1);
|
|
114
|
+
expect(decisions[0].content).toBe("Use REST not GraphQL");
|
|
115
|
+
// Corrections have higher importance weight, so should score higher
|
|
116
|
+
expect(corrections[0].score).toBeGreaterThan(decisions[0].score);
|
|
117
|
+
expect(decisions[0].score).toBeGreaterThan(patterns[0].score);
|
|
118
|
+
});
|
|
119
|
+
});
|
|
120
|
+
describe("memory_forget critical path", () => {
|
|
121
|
+
it("deleting by ID removes the memory", () => {
|
|
122
|
+
const id = db.insertMemory({ content: "to forget", type: "fact", tags: [], confidence: 0.5, source: "t", embedding: null, scope: "global" });
|
|
123
|
+
// Verify it exists
|
|
124
|
+
expect(db.getById(id)).not.toBeNull();
|
|
125
|
+
// Delete it (what memory_forget does)
|
|
126
|
+
db.deleteMemory(id);
|
|
127
|
+
// Gone
|
|
128
|
+
expect(db.getById(id)).toBeNull();
|
|
129
|
+
});
|
|
130
|
+
it("deleting a nonexistent ID is a no-op", () => {
|
|
131
|
+
// Should not throw
|
|
132
|
+
db.deleteMemory("nonexistent-id");
|
|
133
|
+
});
|
|
134
|
+
});
|
|
135
|
+
describe("memory_patch critical path", () => {
|
|
136
|
+
it("patching content updates the memory and creates a version", () => {
|
|
137
|
+
const id = db.insertMemory({ content: "original", type: "fact", tags: ["a"], confidence: 0.8, source: "t", embedding: null, scope: "global" });
|
|
138
|
+
const success = db.patchMemory(id, {
|
|
139
|
+
field: "content",
|
|
140
|
+
value: "updated content",
|
|
141
|
+
reason: "corrected info",
|
|
142
|
+
});
|
|
143
|
+
expect(success).toBe(true);
|
|
144
|
+
const mem = db.getById(id);
|
|
145
|
+
expect(mem.content).toBe("updated content");
|
|
146
|
+
const versions = db.getVersionHistory(id);
|
|
147
|
+
expect(versions).toHaveLength(1);
|
|
148
|
+
expect(versions[0].content).toBe("original");
|
|
149
|
+
});
|
|
150
|
+
it("patching confidence updates the value", () => {
|
|
151
|
+
const id = db.insertMemory({ content: "x", type: "fact", tags: [], confidence: 0.5, source: "t", embedding: null, scope: "global" });
|
|
152
|
+
db.patchMemory(id, { field: "confidence", value: 0.95, reason: "validated by user" });
|
|
153
|
+
expect(db.getById(id).confidence).toBe(0.95);
|
|
154
|
+
});
|
|
155
|
+
it("patching tags updates the array", () => {
|
|
156
|
+
const id = db.insertMemory({ content: "x", type: "fact", tags: ["old"], confidence: 0.5, source: "t", embedding: null, scope: "global" });
|
|
157
|
+
db.patchMemory(id, { field: "tags", value: ["new", "tags"], reason: "retagged" });
|
|
158
|
+
expect(db.getById(id).tags).toEqual(["new", "tags"]);
|
|
159
|
+
});
|
|
160
|
+
it("patching a nonexistent memory returns false", () => {
|
|
161
|
+
const success = db.patchMemory("bad-id", { field: "content", value: "x", reason: "test" });
|
|
162
|
+
expect(success).toBe(false);
|
|
163
|
+
});
|
|
164
|
+
it("multiple patches create multiple version snapshots", () => {
|
|
165
|
+
const id = db.insertMemory({ content: "v1", type: "fact", tags: [], confidence: 0.5, source: "t", embedding: null, scope: "global" });
|
|
166
|
+
db.patchMemory(id, { field: "content", value: "v2", reason: "first edit" });
|
|
167
|
+
db.patchMemory(id, { field: "content", value: "v3", reason: "second edit" });
|
|
168
|
+
const versions = db.getVersionHistory(id);
|
|
169
|
+
expect(versions).toHaveLength(2);
|
|
170
|
+
// Both previous contents should be captured (order depends on timestamp resolution)
|
|
171
|
+
const versionContents = versions.map(v => v.content).sort();
|
|
172
|
+
expect(versionContents).toEqual(["v1", "v2"]);
|
|
173
|
+
const mem = db.getById(id);
|
|
174
|
+
expect(mem.content).toBe("v3");
|
|
175
|
+
});
|
|
176
|
+
});
|
|
177
|
+
describe("end-to-end: store, recall, inject, patch, forget", () => {
|
|
178
|
+
it("full lifecycle", () => {
|
|
179
|
+
// Store
|
|
180
|
+
const id1 = db.insertMemory({
|
|
181
|
+
content: "Always use strict TypeScript config",
|
|
182
|
+
type: "correction",
|
|
183
|
+
tags: ["typescript", "config"],
|
|
184
|
+
confidence: 1.0,
|
|
185
|
+
source: "conversation",
|
|
186
|
+
embedding: null,
|
|
187
|
+
scope: "global",
|
|
188
|
+
});
|
|
189
|
+
const id2 = db.insertMemory({
|
|
190
|
+
content: "Chose Tailwind for styling",
|
|
191
|
+
type: "decision",
|
|
192
|
+
tags: ["css", "tailwind"],
|
|
193
|
+
confidence: 0.9,
|
|
194
|
+
source: "conversation",
|
|
195
|
+
embedding: null,
|
|
196
|
+
scope: "project:myapp",
|
|
197
|
+
});
|
|
198
|
+
// Recall
|
|
199
|
+
const allResults = recallMemories(db, { query: null, limit: 10 });
|
|
200
|
+
expect(allResults).toHaveLength(2);
|
|
201
|
+
// Inject-style: filter to corrections and decisions
|
|
202
|
+
const corrections = allResults.filter(r => r.type === "correction");
|
|
203
|
+
const decisions = allResults.filter(r => r.type === "decision");
|
|
204
|
+
expect(corrections).toHaveLength(1);
|
|
205
|
+
expect(decisions).toHaveLength(1);
|
|
206
|
+
// Patch
|
|
207
|
+
db.patchMemory(id2, { field: "confidence", value: 0.95, reason: "team approved" });
|
|
208
|
+
expect(db.getById(id2).confidence).toBe(0.95);
|
|
209
|
+
// Forget
|
|
210
|
+
db.deleteMemory(id1);
|
|
211
|
+
expect(db.getById(id1)).toBeNull();
|
|
212
|
+
const remaining = recallMemories(db, { query: null, limit: 10 });
|
|
213
|
+
expect(remaining).toHaveLength(1);
|
|
214
|
+
expect(remaining[0].id).toBe(id2);
|
|
215
|
+
});
|
|
216
|
+
});
|
|
217
|
+
//# sourceMappingURL=tools.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.test.js","sourceRoot":"","sources":["../src/tools.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aman_asmuei/amem",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.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",
|
|
@@ -8,7 +8,6 @@
|
|
|
8
8
|
".": "./dist/index.js"
|
|
9
9
|
},
|
|
10
10
|
"bin": {
|
|
11
|
-
"@aman_asmuei/amem": "dist/index.js",
|
|
12
11
|
"amem": "dist/index.js",
|
|
13
12
|
"amem-cli": "dist/cli.js"
|
|
14
13
|
},
|
package/dist/tools.d.ts
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
-
import type { AmemDatabase } from "./database.js";
|
|
3
|
-
import { type MemoryTypeValue } from "./memory.js";
|
|
4
|
-
export declare const TYPE_ORDER: MemoryTypeValue[];
|
|
5
|
-
export declare function formatAge(timestamp: number): string;
|
|
6
|
-
export declare function registerTools(server: McpServer, db: AmemDatabase, project: string): void;
|