@aman_asmuei/amem 0.19.0 → 0.21.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 +33 -4
- package/dist/cli.js +64 -16
- package/dist/cli.js.map +1 -1
- package/dist/dashboard.d.ts +1 -1
- package/dist/dashboard.js +45 -1
- package/dist/dashboard.js.map +1 -1
- package/dist/hooks.d.ts +33 -0
- package/dist/hooks.js +143 -0
- package/dist/hooks.js.map +1 -1
- package/dist/index.js +3 -7
- package/dist/index.js.map +1 -1
- package/dist/tools/advanced.d.ts +1 -1
- package/dist/tools/advanced.js +1 -5
- package/dist/tools/advanced.js.map +1 -1
- package/dist/tools/graph.d.ts +1 -1
- package/dist/tools/graph.js +1 -2
- package/dist/tools/graph.js.map +1 -1
- package/dist/tools/index.d.ts +2 -2
- package/dist/tools/index.js +2 -2
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/log.d.ts +1 -1
- package/dist/tools/log.js +1 -2
- package/dist/tools/log.js.map +1 -1
- package/dist/tools/memory.d.ts +1 -2
- package/dist/tools/memory.js +16 -22
- package/dist/tools/memory.js.map +1 -1
- package/dist/tools/reminders.d.ts +1 -1
- package/dist/tools/reminders.js +4 -5
- package/dist/tools/reminders.js.map +1 -1
- package/dist/tools/versions.d.ts +1 -1
- package/dist/tools/versions.js +3 -4
- package/dist/tools/versions.js.map +1 -1
- package/dist/tools.test.js +1 -2
- package/dist/tools.test.js.map +1 -1
- package/package.json +3 -9
- package/dist/ann.d.ts +0 -26
- package/dist/ann.js +0 -155
- package/dist/ann.js.map +0 -1
- package/dist/auto-relate.d.ts +0 -14
- package/dist/auto-relate.js +0 -47
- package/dist/auto-relate.js.map +0 -1
- package/dist/config.d.ts +0 -51
- package/dist/config.js +0 -130
- package/dist/config.js.map +0 -1
- package/dist/database.d.ts +0 -165
- package/dist/database.js +0 -831
- package/dist/database.js.map +0 -1
- package/dist/database.test.d.ts +0 -1
- package/dist/database.test.js +0 -275
- package/dist/database.test.js.map +0 -1
- package/dist/doctor.d.ts +0 -23
- package/dist/doctor.js +0 -107
- package/dist/doctor.js.map +0 -1
- package/dist/embeddings.d.ts +0 -38
- package/dist/embeddings.js +0 -251
- package/dist/embeddings.js.map +0 -1
- package/dist/embeddings.test.d.ts +0 -1
- package/dist/embeddings.test.js +0 -106
- package/dist/embeddings.test.js.map +0 -1
- package/dist/extractor.d.ts +0 -13
- package/dist/extractor.js +0 -89
- package/dist/extractor.js.map +0 -1
- package/dist/memory.d.ts +0 -134
- package/dist/memory.js +0 -432
- package/dist/memory.js.map +0 -1
- package/dist/memory.test.d.ts +0 -1
- package/dist/memory.test.js +0 -172
- package/dist/memory.test.js.map +0 -1
- package/dist/query-expand.d.ts +0 -9
- package/dist/query-expand.js +0 -71
- package/dist/query-expand.js.map +0 -1
- package/dist/reflection.d.ts +0 -82
- package/dist/reflection.js +0 -414
- package/dist/reflection.js.map +0 -1
- package/dist/reflection.test.d.ts +0 -1
- package/dist/reflection.test.js +0 -453
- package/dist/reflection.test.js.map +0 -1
- package/dist/repair.d.ts +0 -8
- package/dist/repair.js +0 -90
- package/dist/repair.js.map +0 -1
- package/dist/schemas.d.ts +0 -1075
- package/dist/schemas.js +0 -311
- package/dist/schemas.js.map +0 -1
- package/dist/sync.d.ts +0 -85
- package/dist/sync.js +0 -304
- package/dist/sync.js.map +0 -1
- package/dist/tools/helpers.d.ts +0 -7
- package/dist/tools/helpers.js +0 -23
- package/dist/tools/helpers.js.map +0 -1
package/dist/database.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"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"}
|
package/dist/database.test.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/dist/database.test.js
DELETED
|
@@ -1,275 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect, beforeEach, afterEach } from "vitest";
|
|
2
|
-
import { createDatabase } from "./database.js";
|
|
3
|
-
let db;
|
|
4
|
-
beforeEach(() => {
|
|
5
|
-
db = createDatabase(":memory:");
|
|
6
|
-
});
|
|
7
|
-
afterEach(() => {
|
|
8
|
-
db.close();
|
|
9
|
-
});
|
|
10
|
-
describe("schema creation", () => {
|
|
11
|
-
it("creates all expected tables", () => {
|
|
12
|
-
const tables = db.listTables();
|
|
13
|
-
expect(tables).toContain("memories");
|
|
14
|
-
expect(tables).toContain("conversation_log");
|
|
15
|
-
expect(tables).toContain("memory_versions");
|
|
16
|
-
expect(tables).toContain("memory_relations");
|
|
17
|
-
expect(tables).toContain("reminders");
|
|
18
|
-
});
|
|
19
|
-
});
|
|
20
|
-
describe("insertMemory / getById", () => {
|
|
21
|
-
it("stores a memory and retrieves it by ID", () => {
|
|
22
|
-
const id = db.insertMemory({
|
|
23
|
-
content: "Use pnpm not npm",
|
|
24
|
-
type: "preference",
|
|
25
|
-
tags: ["tooling"],
|
|
26
|
-
confidence: 0.9,
|
|
27
|
-
source: "conversation",
|
|
28
|
-
embedding: null,
|
|
29
|
-
scope: "global",
|
|
30
|
-
});
|
|
31
|
-
expect(id).toBeTruthy();
|
|
32
|
-
const mem = db.getById(id);
|
|
33
|
-
expect(mem).not.toBeNull();
|
|
34
|
-
expect(mem.content).toBe("Use pnpm not npm");
|
|
35
|
-
expect(mem.type).toBe("preference");
|
|
36
|
-
expect(mem.tags).toEqual(["tooling"]);
|
|
37
|
-
expect(mem.confidence).toBe(0.9);
|
|
38
|
-
expect(mem.source).toBe("conversation");
|
|
39
|
-
expect(mem.scope).toBe("global");
|
|
40
|
-
expect(mem.accessCount).toBe(0);
|
|
41
|
-
expect(mem.embedding).toBeNull();
|
|
42
|
-
});
|
|
43
|
-
it("stores and retrieves an embedding", () => {
|
|
44
|
-
const embedding = new Float32Array([0.1, 0.2, 0.3]);
|
|
45
|
-
const id = db.insertMemory({
|
|
46
|
-
content: "test embedding",
|
|
47
|
-
type: "fact",
|
|
48
|
-
tags: [],
|
|
49
|
-
confidence: 0.5,
|
|
50
|
-
source: "test",
|
|
51
|
-
embedding,
|
|
52
|
-
scope: "global",
|
|
53
|
-
});
|
|
54
|
-
const mem = db.getById(id);
|
|
55
|
-
expect(mem.embedding).toBeInstanceOf(Float32Array);
|
|
56
|
-
expect(mem.embedding.length).toBe(3);
|
|
57
|
-
expect(mem.embedding[0]).toBeCloseTo(0.1);
|
|
58
|
-
expect(mem.embedding[1]).toBeCloseTo(0.2);
|
|
59
|
-
expect(mem.embedding[2]).toBeCloseTo(0.3);
|
|
60
|
-
});
|
|
61
|
-
it("returns null for nonexistent ID", () => {
|
|
62
|
-
expect(db.getById("nonexistent")).toBeNull();
|
|
63
|
-
});
|
|
64
|
-
});
|
|
65
|
-
describe("searchByType", () => {
|
|
66
|
-
it("filters memories by type", () => {
|
|
67
|
-
db.insertMemory({ content: "c1", type: "correction", tags: [], confidence: 1, source: "t", embedding: null, scope: "global" });
|
|
68
|
-
db.insertMemory({ content: "d1", type: "decision", tags: [], confidence: 0.9, source: "t", embedding: null, scope: "global" });
|
|
69
|
-
db.insertMemory({ content: "c2", type: "correction", tags: [], confidence: 1, source: "t", embedding: null, scope: "global" });
|
|
70
|
-
const corrections = db.searchByType("correction");
|
|
71
|
-
expect(corrections).toHaveLength(2);
|
|
72
|
-
expect(corrections.every(m => m.type === "correction")).toBe(true);
|
|
73
|
-
});
|
|
74
|
-
});
|
|
75
|
-
describe("searchByTag", () => {
|
|
76
|
-
it("filters memories by tag", () => {
|
|
77
|
-
db.insertMemory({ content: "a", type: "fact", tags: ["typescript", "testing"], confidence: 0.5, source: "t", embedding: null, scope: "global" });
|
|
78
|
-
db.insertMemory({ content: "b", type: "fact", tags: ["rust"], confidence: 0.5, source: "t", embedding: null, scope: "global" });
|
|
79
|
-
const results = db.searchByTag("typescript");
|
|
80
|
-
expect(results).toHaveLength(1);
|
|
81
|
-
expect(results[0].content).toBe("a");
|
|
82
|
-
});
|
|
83
|
-
});
|
|
84
|
-
describe("fullTextSearch", () => {
|
|
85
|
-
it("finds memories by content keywords", () => {
|
|
86
|
-
db.insertMemory({ content: "Always use Tailwind for styling", type: "preference", tags: [], confidence: 0.8, source: "t", embedding: null, scope: "global" });
|
|
87
|
-
db.insertMemory({ content: "Database schema uses SQLite", type: "fact", tags: [], confidence: 0.6, source: "t", embedding: null, scope: "global" });
|
|
88
|
-
const results = db.fullTextSearch("Tailwind");
|
|
89
|
-
expect(results.length).toBeGreaterThanOrEqual(1);
|
|
90
|
-
expect(results[0].content).toContain("Tailwind");
|
|
91
|
-
});
|
|
92
|
-
it("scoped search filters by project", () => {
|
|
93
|
-
db.insertMemory({ content: "Global memory", type: "fact", tags: [], confidence: 0.6, source: "t", embedding: null, scope: "global" });
|
|
94
|
-
db.insertMemory({ content: "Project specific memory", type: "fact", tags: [], confidence: 0.6, source: "t", embedding: null, scope: "project:foo" });
|
|
95
|
-
const results = db.fullTextSearch("memory", 20, "project:foo");
|
|
96
|
-
// Should include both global and project:foo
|
|
97
|
-
const scopes = results.map(r => r.scope);
|
|
98
|
-
for (const s of scopes) {
|
|
99
|
-
expect(["global", "project:foo"]).toContain(s);
|
|
100
|
-
}
|
|
101
|
-
});
|
|
102
|
-
});
|
|
103
|
-
describe("updateConfidence", () => {
|
|
104
|
-
it("updates confidence and increments access count", () => {
|
|
105
|
-
const id = db.insertMemory({ content: "x", type: "fact", tags: [], confidence: 0.5, source: "t", embedding: null, scope: "global" });
|
|
106
|
-
db.updateConfidence(id, 0.9);
|
|
107
|
-
const mem = db.getById(id);
|
|
108
|
-
expect(mem.confidence).toBe(0.9);
|
|
109
|
-
expect(mem.accessCount).toBe(1);
|
|
110
|
-
});
|
|
111
|
-
});
|
|
112
|
-
describe("deleteMemory", () => {
|
|
113
|
-
it("removes a memory", () => {
|
|
114
|
-
const id = db.insertMemory({ content: "to delete", type: "fact", tags: [], confidence: 0.5, source: "t", embedding: null, scope: "global" });
|
|
115
|
-
expect(db.getById(id)).not.toBeNull();
|
|
116
|
-
db.deleteMemory(id);
|
|
117
|
-
expect(db.getById(id)).toBeNull();
|
|
118
|
-
});
|
|
119
|
-
});
|
|
120
|
-
describe("getStats", () => {
|
|
121
|
-
it("returns correct totals and type breakdown", () => {
|
|
122
|
-
db.insertMemory({ content: "c", type: "correction", tags: [], confidence: 1, source: "t", embedding: null, scope: "global" });
|
|
123
|
-
db.insertMemory({ content: "d", type: "decision", tags: [], confidence: 0.9, source: "t", embedding: null, scope: "global" });
|
|
124
|
-
db.insertMemory({ content: "d2", type: "decision", tags: [], confidence: 0.85, source: "t", embedding: null, scope: "global" });
|
|
125
|
-
const stats = db.getStats();
|
|
126
|
-
expect(stats.total).toBe(3);
|
|
127
|
-
expect(stats.byType["correction"]).toBe(1);
|
|
128
|
-
expect(stats.byType["decision"]).toBe(2);
|
|
129
|
-
});
|
|
130
|
-
});
|
|
131
|
-
describe("version history", () => {
|
|
132
|
-
it("snapshots and retrieves versions", () => {
|
|
133
|
-
const id = db.insertMemory({ content: "original content", type: "fact", tags: [], confidence: 0.8, source: "t", embedding: null, scope: "global" });
|
|
134
|
-
db.snapshotVersion(id, "initial snapshot");
|
|
135
|
-
const versions = db.getVersionHistory(id);
|
|
136
|
-
expect(versions).toHaveLength(1);
|
|
137
|
-
expect(versions[0].content).toBe("original content");
|
|
138
|
-
expect(versions[0].confidence).toBe(0.8);
|
|
139
|
-
expect(versions[0].reason).toBe("initial snapshot");
|
|
140
|
-
expect(versions[0].memoryId).toBe(id);
|
|
141
|
-
});
|
|
142
|
-
it("patchMemory creates a version snapshot before patching", () => {
|
|
143
|
-
const id = db.insertMemory({ content: "old content", type: "fact", tags: ["a"], confidence: 0.7, source: "t", embedding: null, scope: "global" });
|
|
144
|
-
const success = db.patchMemory(id, { field: "content", value: "new content", reason: "updated info" });
|
|
145
|
-
expect(success).toBe(true);
|
|
146
|
-
const mem = db.getById(id);
|
|
147
|
-
expect(mem.content).toBe("new content");
|
|
148
|
-
const versions = db.getVersionHistory(id);
|
|
149
|
-
expect(versions).toHaveLength(1);
|
|
150
|
-
expect(versions[0].content).toBe("old content");
|
|
151
|
-
expect(versions[0].reason).toContain("before patch: updated info");
|
|
152
|
-
});
|
|
153
|
-
it("patchMemory updates confidence", () => {
|
|
154
|
-
const id = db.insertMemory({ content: "x", type: "fact", tags: [], confidence: 0.5, source: "t", embedding: null, scope: "global" });
|
|
155
|
-
db.patchMemory(id, { field: "confidence", value: 0.95, reason: "validated" });
|
|
156
|
-
const mem = db.getById(id);
|
|
157
|
-
expect(mem.confidence).toBe(0.95);
|
|
158
|
-
});
|
|
159
|
-
it("patchMemory updates tags", () => {
|
|
160
|
-
const id = db.insertMemory({ content: "x", type: "fact", tags: ["old"], confidence: 0.5, source: "t", embedding: null, scope: "global" });
|
|
161
|
-
db.patchMemory(id, { field: "tags", value: ["new", "tags"], reason: "retagged" });
|
|
162
|
-
const mem = db.getById(id);
|
|
163
|
-
expect(mem.tags).toEqual(["new", "tags"]);
|
|
164
|
-
});
|
|
165
|
-
it("patchMemory updates type", () => {
|
|
166
|
-
const id = db.insertMemory({ content: "x", type: "fact", tags: [], confidence: 0.5, source: "t", embedding: null, scope: "global" });
|
|
167
|
-
db.patchMemory(id, { field: "type", value: "decision", reason: "reclassified" });
|
|
168
|
-
const mem = db.getById(id);
|
|
169
|
-
expect(mem.type).toBe("decision");
|
|
170
|
-
});
|
|
171
|
-
it("patchMemory returns false for nonexistent ID", () => {
|
|
172
|
-
const success = db.patchMemory("nonexistent-id", { field: "content", value: "x", reason: "test" });
|
|
173
|
-
expect(success).toBe(false);
|
|
174
|
-
});
|
|
175
|
-
});
|
|
176
|
-
describe("relations (knowledge graph)", () => {
|
|
177
|
-
it("creates and queries relations", () => {
|
|
178
|
-
const id1 = db.insertMemory({ content: "memory A", type: "decision", tags: [], confidence: 0.9, source: "t", embedding: null, scope: "global" });
|
|
179
|
-
const id2 = db.insertMemory({ content: "memory B", type: "pattern", tags: [], confidence: 0.7, source: "t", embedding: null, scope: "global" });
|
|
180
|
-
const relId = db.addRelation(id1, id2, "supports", 0.9);
|
|
181
|
-
expect(relId).toBeTruthy();
|
|
182
|
-
const relations = db.getRelations(id1);
|
|
183
|
-
expect(relations).toHaveLength(1);
|
|
184
|
-
expect(relations[0].fromId).toBe(id1);
|
|
185
|
-
expect(relations[0].toId).toBe(id2);
|
|
186
|
-
expect(relations[0].relationshipType).toBe("supports");
|
|
187
|
-
expect(relations[0].strength).toBe(0.9);
|
|
188
|
-
});
|
|
189
|
-
it("getRelations returns both directions", () => {
|
|
190
|
-
const id1 = db.insertMemory({ content: "A", type: "fact", tags: [], confidence: 0.5, source: "t", embedding: null, scope: "global" });
|
|
191
|
-
const id2 = db.insertMemory({ content: "B", type: "fact", tags: [], confidence: 0.5, source: "t", embedding: null, scope: "global" });
|
|
192
|
-
const id3 = db.insertMemory({ content: "C", type: "fact", tags: [], confidence: 0.5, source: "t", embedding: null, scope: "global" });
|
|
193
|
-
db.addRelation(id1, id2, "relates");
|
|
194
|
-
db.addRelation(id3, id1, "depends_on");
|
|
195
|
-
const relations = db.getRelations(id1);
|
|
196
|
-
expect(relations).toHaveLength(2);
|
|
197
|
-
});
|
|
198
|
-
it("getRelatedMemories returns the related Memory objects", () => {
|
|
199
|
-
const id1 = db.insertMemory({ content: "A", type: "fact", tags: [], confidence: 0.5, source: "t", embedding: null, scope: "global" });
|
|
200
|
-
const id2 = db.insertMemory({ content: "B", type: "fact", tags: [], confidence: 0.5, source: "t", embedding: null, scope: "global" });
|
|
201
|
-
db.addRelation(id1, id2, "supports");
|
|
202
|
-
const related = db.getRelatedMemories(id1);
|
|
203
|
-
expect(related).toHaveLength(1);
|
|
204
|
-
expect(related[0].content).toBe("B");
|
|
205
|
-
});
|
|
206
|
-
it("removeRelation deletes a relation", () => {
|
|
207
|
-
const id1 = db.insertMemory({ content: "A", type: "fact", tags: [], confidence: 0.5, source: "t", embedding: null, scope: "global" });
|
|
208
|
-
const id2 = db.insertMemory({ content: "B", type: "fact", tags: [], confidence: 0.5, source: "t", embedding: null, scope: "global" });
|
|
209
|
-
const relId = db.addRelation(id1, id2, "supports");
|
|
210
|
-
db.removeRelation(relId);
|
|
211
|
-
expect(db.getRelations(id1)).toHaveLength(0);
|
|
212
|
-
});
|
|
213
|
-
});
|
|
214
|
-
describe("temporal queries", () => {
|
|
215
|
-
it("getMemoriesSince returns memories after timestamp", () => {
|
|
216
|
-
const before = Date.now() - 1000;
|
|
217
|
-
db.insertMemory({ content: "recent", type: "fact", tags: [], confidence: 0.5, source: "t", embedding: null, scope: "global" });
|
|
218
|
-
const results = db.getMemoriesSince(before);
|
|
219
|
-
expect(results.length).toBeGreaterThanOrEqual(1);
|
|
220
|
-
expect(results[0].content).toBe("recent");
|
|
221
|
-
});
|
|
222
|
-
it("getMemoriesByDateRange returns memories within range", () => {
|
|
223
|
-
const now = Date.now();
|
|
224
|
-
db.insertMemory({ content: "in range", type: "fact", tags: [], confidence: 0.5, source: "t", embedding: null, scope: "global" });
|
|
225
|
-
const results = db.getMemoriesByDateRange(now - 1000, now + 1000);
|
|
226
|
-
expect(results.length).toBeGreaterThanOrEqual(1);
|
|
227
|
-
});
|
|
228
|
-
});
|
|
229
|
-
describe("conversation log", () => {
|
|
230
|
-
it("appends and retrieves log entries", () => {
|
|
231
|
-
const id = db.appendLog({
|
|
232
|
-
sessionId: "session-1",
|
|
233
|
-
role: "user",
|
|
234
|
-
content: "Hello world",
|
|
235
|
-
project: "test-project",
|
|
236
|
-
});
|
|
237
|
-
expect(id).toBeTruthy();
|
|
238
|
-
const entries = db.getLogBySession("session-1");
|
|
239
|
-
expect(entries).toHaveLength(1);
|
|
240
|
-
expect(entries[0].content).toBe("Hello world");
|
|
241
|
-
expect(entries[0].role).toBe("user");
|
|
242
|
-
expect(entries[0].project).toBe("test-project");
|
|
243
|
-
});
|
|
244
|
-
it("getRecentLog returns entries in descending order", () => {
|
|
245
|
-
db.appendLog({ sessionId: "s1", role: "user", content: "first", project: "p" });
|
|
246
|
-
db.appendLog({ sessionId: "s1", role: "assistant", content: "second", project: "p" });
|
|
247
|
-
const recent = db.getRecentLog(10);
|
|
248
|
-
expect(recent).toHaveLength(2);
|
|
249
|
-
// Most recent first
|
|
250
|
-
expect(recent[0].content).toBe("second");
|
|
251
|
-
});
|
|
252
|
-
});
|
|
253
|
-
describe("reminders", () => {
|
|
254
|
-
it("inserts and lists reminders", () => {
|
|
255
|
-
const id = db.insertReminder("Review PR", Date.now() + 86400000, "global");
|
|
256
|
-
expect(id).toBeTruthy();
|
|
257
|
-
const reminders = db.listReminders();
|
|
258
|
-
expect(reminders).toHaveLength(1);
|
|
259
|
-
expect(reminders[0].content).toBe("Review PR");
|
|
260
|
-
expect(reminders[0].completed).toBe(false);
|
|
261
|
-
});
|
|
262
|
-
it("completes a reminder", () => {
|
|
263
|
-
const id = db.insertReminder("Do thing", null, "global");
|
|
264
|
-
const success = db.completeReminder(id);
|
|
265
|
-
expect(success).toBe(true);
|
|
266
|
-
// Completed reminders excluded by default
|
|
267
|
-
const reminders = db.listReminders();
|
|
268
|
-
expect(reminders).toHaveLength(0);
|
|
269
|
-
// But included when requested
|
|
270
|
-
const all = db.listReminders(true);
|
|
271
|
-
expect(all).toHaveLength(1);
|
|
272
|
-
expect(all[0].completed).toBe(true);
|
|
273
|
-
});
|
|
274
|
-
});
|
|
275
|
-
//# sourceMappingURL=database.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"database.test.js","sourceRoot":"","sources":["../src/database.test.ts"],"names":[],"mappings":"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"}
|
package/dist/doctor.d.ts
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import type { AmemDatabase } from "./database.js";
|
|
2
|
-
export interface DiagnosticIssue {
|
|
3
|
-
type: string;
|
|
4
|
-
severity: "info" | "warning" | "critical";
|
|
5
|
-
message: string;
|
|
6
|
-
suggestion: string;
|
|
7
|
-
}
|
|
8
|
-
export interface DiagnosticReport {
|
|
9
|
-
status: "healthy" | "warning" | "critical";
|
|
10
|
-
stats: {
|
|
11
|
-
totalMemories: number;
|
|
12
|
-
embeddingCoverage: number;
|
|
13
|
-
coreTierTokens: number;
|
|
14
|
-
coreTierBudget: number;
|
|
15
|
-
staleCount: number;
|
|
16
|
-
orphanedGraphNodes: number;
|
|
17
|
-
byType: Record<string, number>;
|
|
18
|
-
graphEdges: number;
|
|
19
|
-
remindersOverdue: number;
|
|
20
|
-
};
|
|
21
|
-
issues: DiagnosticIssue[];
|
|
22
|
-
}
|
|
23
|
-
export declare function runDiagnostics(db: AmemDatabase): DiagnosticReport;
|
package/dist/doctor.js
DELETED
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
import { loadConfig } from "./config.js";
|
|
2
|
-
export function runDiagnostics(db) {
|
|
3
|
-
const config = loadConfig();
|
|
4
|
-
const issues = [];
|
|
5
|
-
// Basic stats
|
|
6
|
-
const stats = db.getStats();
|
|
7
|
-
const totalMemories = stats.total;
|
|
8
|
-
const byType = stats.byType;
|
|
9
|
-
// Embedding coverage
|
|
10
|
-
const embeddingCount = db.getEmbeddingCount();
|
|
11
|
-
const embeddingCoverage = totalMemories > 0
|
|
12
|
-
? Math.round((embeddingCount / totalMemories) * 100)
|
|
13
|
-
: 100; // empty DB is fine
|
|
14
|
-
// Core tier token analysis
|
|
15
|
-
const coreTierBudget = config.tiers.coreMaxTokens;
|
|
16
|
-
const coreMemories = db.getByTier("core");
|
|
17
|
-
const coreTierTokens = coreMemories.reduce((sum, m) => sum + Math.ceil(m.content.length / 4), 0);
|
|
18
|
-
// Stale memories: 60+ days old, <0.5 confidence, not corrections
|
|
19
|
-
const now = Date.now();
|
|
20
|
-
const staleCutoff = now - 60 * 24 * 60 * 60 * 1000;
|
|
21
|
-
const allMemories = db.getAll();
|
|
22
|
-
const staleMemories = allMemories.filter((m) => m.createdAt < staleCutoff &&
|
|
23
|
-
m.confidence < 0.5 &&
|
|
24
|
-
m.type !== "correction");
|
|
25
|
-
const staleCount = staleMemories.length;
|
|
26
|
-
// Graph analysis
|
|
27
|
-
const allRelations = db.getAllRelations();
|
|
28
|
-
const graphEdges = allRelations.length;
|
|
29
|
-
const memoryIds = new Set(allMemories.map((m) => m.id));
|
|
30
|
-
const orphanedGraphNodes = allRelations.filter((r) => !memoryIds.has(r.fromId) || !memoryIds.has(r.toId)).length;
|
|
31
|
-
// Overdue reminders
|
|
32
|
-
const reminders = db.checkReminders();
|
|
33
|
-
const remindersOverdue = reminders.filter((r) => r.status === "overdue").length;
|
|
34
|
-
// ── Issue detection ──────────────────────────────────────
|
|
35
|
-
if (totalMemories > 0 && embeddingCoverage < 50) {
|
|
36
|
-
issues.push({
|
|
37
|
-
type: "low_embedding_coverage",
|
|
38
|
-
severity: "warning",
|
|
39
|
-
message: `Only ${embeddingCoverage}% of memories have embeddings`,
|
|
40
|
-
suggestion: "Semantic search quality is reduced. Use the MCP server to auto-generate embeddings on access.",
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
if (coreTierTokens > coreTierBudget * 0.9 && coreTierBudget > 0) {
|
|
44
|
-
issues.push({
|
|
45
|
-
type: "core_tier_near_budget",
|
|
46
|
-
severity: coreTierTokens > coreTierBudget ? "critical" : "warning",
|
|
47
|
-
message: `Core tier uses ${coreTierTokens}/${coreTierBudget} tokens (${Math.round((coreTierTokens / coreTierBudget) * 100)}%)`,
|
|
48
|
-
suggestion: "Review core memories with 'amem list --type correction' and consolidate or demote less important ones.",
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
if (staleCount > 10) {
|
|
52
|
-
issues.push({
|
|
53
|
-
type: "stale_memories",
|
|
54
|
-
severity: "warning",
|
|
55
|
-
message: `${staleCount} stale memories (60+ days old, low confidence)`,
|
|
56
|
-
suggestion: "Run 'amem list' to review and 'amem forget <id>' to clean up outdated entries.",
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
if (orphanedGraphNodes > 0) {
|
|
60
|
-
issues.push({
|
|
61
|
-
type: "orphaned_graph_nodes",
|
|
62
|
-
severity: "warning",
|
|
63
|
-
message: `${orphanedGraphNodes} graph edge(s) reference deleted memories`,
|
|
64
|
-
suggestion: "These orphaned relations can be cleaned up by consolidating the knowledge graph.",
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
if (remindersOverdue > 0) {
|
|
68
|
-
issues.push({
|
|
69
|
-
type: "overdue_reminders",
|
|
70
|
-
severity: "info",
|
|
71
|
-
message: `${remindersOverdue} overdue reminder(s)`,
|
|
72
|
-
suggestion: "Check reminders via the MCP 'reminder_check' tool or address them in your next session.",
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
if (totalMemories >= 100 && (byType["correction"] ?? 0) === 0) {
|
|
76
|
-
issues.push({
|
|
77
|
-
type: "no_corrections",
|
|
78
|
-
severity: "info",
|
|
79
|
-
message: "100+ memories but no corrections stored",
|
|
80
|
-
suggestion: "Corrections are the highest-priority memory type. Store them when the AI makes mistakes.",
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
// ── Determine overall status ────────────────────────────
|
|
84
|
-
let status = "healthy";
|
|
85
|
-
if (issues.some((i) => i.severity === "critical")) {
|
|
86
|
-
status = "critical";
|
|
87
|
-
}
|
|
88
|
-
else if (issues.some((i) => i.severity === "warning")) {
|
|
89
|
-
status = "warning";
|
|
90
|
-
}
|
|
91
|
-
return {
|
|
92
|
-
status,
|
|
93
|
-
stats: {
|
|
94
|
-
totalMemories,
|
|
95
|
-
embeddingCoverage,
|
|
96
|
-
coreTierTokens,
|
|
97
|
-
coreTierBudget,
|
|
98
|
-
staleCount,
|
|
99
|
-
orphanedGraphNodes,
|
|
100
|
-
byType,
|
|
101
|
-
graphEdges,
|
|
102
|
-
remindersOverdue,
|
|
103
|
-
},
|
|
104
|
-
issues,
|
|
105
|
-
};
|
|
106
|
-
}
|
|
107
|
-
//# sourceMappingURL=doctor.js.map
|
package/dist/doctor.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
|
package/dist/embeddings.d.ts
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
export declare function cosineSimilarity(a: Float32Array, b: Float32Array): number;
|
|
2
|
-
export interface EmbeddingCandidate<T> {
|
|
3
|
-
id: string;
|
|
4
|
-
embedding: Float32Array;
|
|
5
|
-
data: T;
|
|
6
|
-
}
|
|
7
|
-
export interface SimilarityResult<T> {
|
|
8
|
-
id: string;
|
|
9
|
-
similarity: number;
|
|
10
|
-
data: T;
|
|
11
|
-
}
|
|
12
|
-
export declare function findTopK<T>(query: Float32Array, candidates: EmbeddingCandidate<T>[], k: number): SimilarityResult<T>[];
|
|
13
|
-
export declare function disableEmbeddings(): void;
|
|
14
|
-
/**
|
|
15
|
-
* Pre-warm the embedding pipeline in the background.
|
|
16
|
-
* Call this at startup so the model is ready when the first query arrives.
|
|
17
|
-
*/
|
|
18
|
-
export declare function preloadEmbeddings(): void;
|
|
19
|
-
export declare function generateEmbedding(text: string): Promise<Float32Array | null>;
|
|
20
|
-
export declare function isEmbeddingAvailable(): Promise<boolean>;
|
|
21
|
-
export interface RerankCandidate {
|
|
22
|
-
id: string;
|
|
23
|
-
content: string;
|
|
24
|
-
score: number;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Cross-encoder reranking: takes a query and a list of candidates,
|
|
28
|
-
* scores each (query, candidate) pair with a cross-encoder model,
|
|
29
|
-
* and returns candidates re-sorted by cross-encoder score.
|
|
30
|
-
*
|
|
31
|
-
* This is the final pass in the retrieval pipeline — after semantic + FTS + graph
|
|
32
|
-
* have produced candidates, the cross-encoder provides the most accurate scoring
|
|
33
|
-
* by attending to the full (query, document) pair jointly.
|
|
34
|
-
*
|
|
35
|
-
* Falls back to original scores if the cross-encoder model isn't available.
|
|
36
|
-
*/
|
|
37
|
-
export declare function rerankWithCrossEncoder(query: string, candidates: RerankCandidate[], topK: number): Promise<RerankCandidate[]>;
|
|
38
|
-
export declare function isRerankerAvailable(): Promise<boolean>;
|