memory-mimir 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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Integration test: test memory-mimir against a real Mimir server.
3
+ * Run on EC2: MIMIR_URL=http://localhost:8766 npx tsx src/integration-test.ts
4
+ */
5
+ export {};
@@ -0,0 +1,163 @@
1
+ /**
2
+ * Integration test: test memory-mimir against a real Mimir server.
3
+ * Run on EC2: MIMIR_URL=http://localhost:8766 npx tsx src/integration-test.ts
4
+ */
5
+ import { MimirClient } from "./mimir-client.js";
6
+ import { formatSearchResults, formatGraphResults } from "./formatter.js";
7
+ import { discoverMemoryFiles } from "./migration.js";
8
+ import { homedir } from "node:os";
9
+ import { join } from "node:path";
10
+ const MIMIR_URL = process.env.MIMIR_URL ?? "http://localhost:8766";
11
+ const TEST_USER = "integration-test";
12
+ const TEST_GROUP = "integration-test";
13
+ let passed = 0;
14
+ let failed = 0;
15
+ function assert(condition, message) {
16
+ if (condition) {
17
+ passed++;
18
+ console.log(` PASS: ${message}`);
19
+ }
20
+ else {
21
+ failed++;
22
+ console.error(` FAIL: ${message}`);
23
+ }
24
+ }
25
+ async function main() {
26
+ const client = new MimirClient({ url: MIMIR_URL, timeoutMs: 30_000 });
27
+ // ─── Test 1: Health check ──────────────────────────────
28
+ console.log("\n=== Integration: Health Check ===\n");
29
+ {
30
+ const healthy = await client.health();
31
+ assert(healthy, `Mimir at ${MIMIR_URL} is healthy`);
32
+ if (!healthy) {
33
+ console.error("Cannot reach Mimir server. Aborting.");
34
+ process.exit(1);
35
+ }
36
+ }
37
+ // ─── Test 2: Ingest a note ─────────────────────────────
38
+ console.log("\n=== Integration: Ingest Note ===\n");
39
+ {
40
+ const result = await client.ingestNote(TEST_USER, "Arthur prefers dark roast coffee from Blue Bottle. His wife Sarah works at Google as a PM. They are planning a trip to Japan in October 2025.", { groupId: TEST_GROUP, noteId: "test-note-1" });
41
+ assert(result.EpisodeCount > 0, `Ingested note: ${result.EpisodeCount} episodes`);
42
+ // EntityCount may be 0 on repeat runs due to dedup
43
+ assert(result.EntityCount >= 0, `Extracted entities: ${result.EntityCount} (0 is OK on re-run due to dedup)`);
44
+ console.log(` Details: ${JSON.stringify(result)}`);
45
+ }
46
+ // ─── Test 3: Ingest a session ──────────────────────────
47
+ console.log("\n=== Integration: Ingest Session ===\n");
48
+ {
49
+ const result = await client.ingestSession(TEST_USER, [
50
+ {
51
+ role: "user",
52
+ sender_name: "Arthur",
53
+ content: "What's the status of the Mimir project?",
54
+ },
55
+ {
56
+ role: "assistant",
57
+ sender_name: "Claude",
58
+ content: "The Mimir unified memory system is at v0.1. We've completed M1-M8 milestones. LoCoMo eval is at 82.5% accuracy with DeepSeek, and 90.1% with gpt-4.1-mini on conv-26.",
59
+ },
60
+ {
61
+ role: "user",
62
+ sender_name: "Arthur",
63
+ content: "How does it compare to EverMemOS?",
64
+ },
65
+ {
66
+ role: "assistant",
67
+ sender_name: "Claude",
68
+ content: "EverMemOS achieves 90.6% on LoCoMo. Our architecture with gpt-4.1-mini gets 90.1% on conv-26, so we're within 0.5pp. The gap is mainly in Cat3 common-sense questions.",
69
+ },
70
+ ], { groupId: TEST_GROUP });
71
+ assert(result.EpisodeCount >= 0, `Ingested session: ${result.EpisodeCount} episodes`);
72
+ console.log(` Details: ${JSON.stringify(result)}`);
73
+ }
74
+ // Wait a moment for indexing
75
+ await new Promise((resolve) => setTimeout(resolve, 2000));
76
+ // ─── Test 4: Search ────────────────────────────────────
77
+ console.log("\n=== Integration: Search ===\n");
78
+ {
79
+ const results = await client.search(TEST_USER, "coffee preferences", {
80
+ groupId: TEST_GROUP,
81
+ topK: 5,
82
+ });
83
+ assert(results.results.length > 0, `Search returned ${results.results.length} results`);
84
+ const formatted = formatSearchResults(results, {
85
+ maxItems: 5,
86
+ maxChars: 2000,
87
+ });
88
+ console.log(` Formatted output:\n${formatted}`);
89
+ assert(formatted.includes("Relevant Memories"), "Formatted output has header");
90
+ }
91
+ // ─── Test 5: Search for entities ───────────────────────
92
+ console.log("\n=== Integration: Entity Search ===\n");
93
+ {
94
+ const results = await client.search(TEST_USER, "Sarah Google", {
95
+ groupId: TEST_GROUP,
96
+ memoryTypes: ["entity", "relation"],
97
+ topK: 5,
98
+ });
99
+ console.log(` Found ${results.results.length} entity/relation results`);
100
+ for (const r of results.results) {
101
+ console.log(` [${r.type}] score=${r.score.toFixed(3)} ${JSON.stringify(r.data).slice(0, 100)}...`);
102
+ }
103
+ // May or may not find entities depending on LLM extraction
104
+ assert(true, `Entity search completed (${results.results.length} results)`);
105
+ }
106
+ // ─── Test 6: Graph traverse ────────────────────────────
107
+ console.log("\n=== Integration: Graph Traverse ===\n");
108
+ {
109
+ try {
110
+ const result = await client.graphTraverse(["Arthur", "Sarah"], TEST_GROUP, { hops: 2 });
111
+ console.log(` Found ${result.total_entities} entities, ${result.total_relations} relations`);
112
+ if (result.entities.length > 0) {
113
+ const formatted = formatGraphResults(result);
114
+ console.log(` Formatted:\n${formatted}`);
115
+ }
116
+ assert(true, `Graph traverse completed`);
117
+ }
118
+ catch (err) {
119
+ const msg = err instanceof Error ? err.message : String(err);
120
+ console.log(` Graph traverse: ${msg}`);
121
+ assert(true, `Graph traverse handled (may not be configured)`);
122
+ }
123
+ }
124
+ // ─── Test 7: Search for Mimir project info ─────────────
125
+ console.log("\n=== Integration: Project Memory Search ===\n");
126
+ {
127
+ const results = await client.search(TEST_USER, "Mimir project status LoCoMo accuracy", {
128
+ groupId: TEST_GROUP,
129
+ topK: 5,
130
+ });
131
+ assert(results.results.length > 0, `Project search: ${results.results.length} results`);
132
+ const formatted = formatSearchResults(results, {
133
+ maxItems: 5,
134
+ maxChars: 2000,
135
+ });
136
+ console.log(` Formatted:\n${formatted}`);
137
+ }
138
+ // ─── Test 8: Discover local memory files ───────────────
139
+ console.log("\n=== Integration: Local Memory Discovery ===\n");
140
+ {
141
+ const home = homedir();
142
+ const claudeMemory = join(home, ".claude", "projects");
143
+ const files = await discoverMemoryFiles(claudeMemory);
144
+ console.log(` Found ${files.length} .md files in ${claudeMemory}`);
145
+ for (const f of files.slice(0, 5)) {
146
+ console.log(` ${f}`);
147
+ }
148
+ if (files.length > 5) {
149
+ console.log(` ... and ${files.length - 5} more`);
150
+ }
151
+ assert(true, `Memory discovery: ${files.length} files`);
152
+ }
153
+ // ─── Summary ───────────────────────────────────────────
154
+ console.log(`\n${"=".repeat(40)}`);
155
+ console.log(`Integration Results: ${passed} passed, ${failed} failed`);
156
+ console.log(`${"=".repeat(40)}\n`);
157
+ process.exit(failed > 0 ? 1 : 0);
158
+ }
159
+ main().catch((err) => {
160
+ console.error("Integration test failed:", err);
161
+ process.exit(1);
162
+ });
163
+ //# sourceMappingURL=integration-test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integration-test.js","sourceRoot":"","sources":["../src/integration-test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Shared helpers for migration module — extracted for testability.
3
+ */
4
+ /** Extract a timestamp hint from a memory filename, if any. */
5
+ export declare function extractDateFromFilename(filename: string): string | undefined;
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Shared helpers for migration module — extracted for testability.
3
+ */
4
+ import { basename, extname } from "node:path";
5
+ /** Extract a timestamp hint from a memory filename, if any. */
6
+ export function extractDateFromFilename(filename) {
7
+ const name = basename(filename, extname(filename));
8
+ // Match patterns like "2025-03-01", "memory-2025-03-01"
9
+ const isoMatch = name.match(/(\d{4}-\d{2}-\d{2})/);
10
+ if (isoMatch) {
11
+ return `${isoMatch[1]}T00:00:00Z`;
12
+ }
13
+ // Match compact "20250301" — anchored to avoid false positives on long digit runs
14
+ const compactMatch = name.match(/(?<!\d)(\d{4})(\d{2})(\d{2})(?!\d)/);
15
+ if (compactMatch) {
16
+ return `${compactMatch[1]}-${compactMatch[2]}-${compactMatch[3]}T00:00:00Z`;
17
+ }
18
+ return undefined;
19
+ }
20
+ //# sourceMappingURL=migration-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migration-helpers.js","sourceRoot":"","sources":["../src/migration-helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE9C,+DAA+D;AAC/D,MAAM,UAAU,uBAAuB,CAAC,QAAgB;IACtD,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEnD,wDAAwD;IACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACnD,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC;IACpC,CAAC;IAED,kFAAkF;IAClF,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACtE,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC;IAC9E,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Migration: Import existing OpenClaw/Claude Code memories into Mimir.
3
+ *
4
+ * Scans MEMORY.md and daily memory files, ingests each as a note,
5
+ * then triggers consolidation.
6
+ */
7
+ import type { MimirClient } from "./mimir-client.js";
8
+ export interface MigrationResult {
9
+ readonly filesFound: number;
10
+ readonly filesIngested: number;
11
+ readonly filesFailed: number;
12
+ readonly totalEpisodes: number;
13
+ readonly totalEntities: number;
14
+ readonly totalRelations: number;
15
+ readonly errors: readonly string[];
16
+ }
17
+ export interface MigrationOptions {
18
+ /** Override the memory directory path. */
19
+ readonly memoryDir?: string;
20
+ /** User ID for Mimir ingestion. */
21
+ readonly userId: string;
22
+ /** Group ID (defaults to userId). */
23
+ readonly groupId?: string;
24
+ /** Progress callback: (current, total, filename) => void. */
25
+ readonly onProgress?: (current: number, total: number, filename: string) => void;
26
+ /** If true, skip user confirmation. */
27
+ readonly autoMigrate?: boolean;
28
+ }
29
+ /** Find OpenClaw/Claude Code memory directories. */
30
+ export declare function findMemoryPaths(): string[];
31
+ /** Discover all markdown memory files in a directory tree. */
32
+ export declare function discoverMemoryFiles(baseDir: string): Promise<string[]>;
33
+ /** Run the full migration: discover files → batch ingest → consolidate. */
34
+ export declare function migrate(client: MimirClient, options: MigrationOptions): Promise<MigrationResult>;
35
+ /** Check if a user has existing Mimir data. */
36
+ export declare function hasExistingData(client: MimirClient, userId: string): Promise<boolean>;
37
+ /** Check if local memory files exist. */
38
+ export declare function hasLocalMemories(): Promise<boolean>;
@@ -0,0 +1,189 @@
1
+ /**
2
+ * Migration: Import existing OpenClaw/Claude Code memories into Mimir.
3
+ *
4
+ * Scans MEMORY.md and daily memory files, ingests each as a note,
5
+ * then triggers consolidation.
6
+ */
7
+ import { readdir, readFile } from "node:fs/promises";
8
+ import { join, basename, extname } from "node:path";
9
+ import { homedir } from "node:os";
10
+ import { extractDateFromFilename } from "./migration-helpers.js";
11
+ // ─── Default Paths ───────────────────────────────────────────
12
+ /** Find OpenClaw/Claude Code memory directories. */
13
+ export function findMemoryPaths() {
14
+ const home = homedir();
15
+ const candidates = [
16
+ // Claude Code auto-memory
17
+ join(home, ".claude", "memory"),
18
+ // Claude Code project-specific memory
19
+ join(home, ".claude", "projects"),
20
+ // OpenClaw workspace memory
21
+ join(home, ".openclaw", "workspace", "memory"),
22
+ // OpenClaw memory
23
+ join(home, ".openclaw", "memory"),
24
+ ];
25
+ return candidates;
26
+ }
27
+ // ─── Core Migration ──────────────────────────────────────────
28
+ /** Discover all markdown memory files in a directory tree. */
29
+ export async function discoverMemoryFiles(baseDir) {
30
+ const files = [];
31
+ try {
32
+ const entries = await readdir(baseDir, { withFileTypes: true });
33
+ for (const entry of entries) {
34
+ const fullPath = join(baseDir, entry.name);
35
+ if (entry.isDirectory()) {
36
+ // Recurse into subdirectories
37
+ const subFiles = await discoverMemoryFiles(fullPath);
38
+ files.push(...subFiles);
39
+ }
40
+ else if (entry.isFile() &&
41
+ extname(entry.name).toLowerCase() === ".md") {
42
+ files.push(fullPath);
43
+ }
44
+ }
45
+ }
46
+ catch {
47
+ // Directory doesn't exist or not readable — skip
48
+ }
49
+ return files.sort();
50
+ }
51
+ /** Parse a memory file into content suitable for Mimir ingestion. */
52
+ async function parseMemoryFile(filePath) {
53
+ const raw = await readFile(filePath, "utf-8");
54
+ const content = raw.trim();
55
+ const timestamp = extractDateFromFilename(filePath);
56
+ const noteId = `migration-${basename(filePath, extname(filePath))}`;
57
+ return { content, timestamp, noteId };
58
+ }
59
+ /** Run the full migration: discover files → batch ingest → consolidate. */
60
+ export async function migrate(client, options) {
61
+ const memoryDir = options.memoryDir ?? findMemoryPaths()[0];
62
+ const groupId = options.groupId ?? options.userId;
63
+ // 1. Discover files
64
+ const files = await discoverMemoryFiles(memoryDir);
65
+ if (files.length === 0) {
66
+ return {
67
+ filesFound: 0,
68
+ filesIngested: 0,
69
+ filesFailed: 0,
70
+ totalEpisodes: 0,
71
+ totalEntities: 0,
72
+ totalRelations: 0,
73
+ errors: [`No .md files found in ${memoryDir}`],
74
+ };
75
+ }
76
+ // 2. Parse all files
77
+ const parsedNotes = [];
78
+ for (const filePath of files) {
79
+ const { content, timestamp, noteId } = await parseMemoryFile(filePath);
80
+ if (!content)
81
+ continue;
82
+ parsedNotes.push({
83
+ filename: basename(filePath),
84
+ content,
85
+ timestamp,
86
+ noteId,
87
+ });
88
+ }
89
+ if (parsedNotes.length === 0) {
90
+ return {
91
+ filesFound: files.length,
92
+ filesIngested: 0,
93
+ filesFailed: 0,
94
+ totalEpisodes: 0,
95
+ totalEntities: 0,
96
+ totalRelations: 0,
97
+ errors: ["All files were empty"],
98
+ };
99
+ }
100
+ options.onProgress?.(0, parsedNotes.length, "starting batch ingestion...");
101
+ // 3. Try batch endpoint first (server-side parallelism)
102
+ const errors = [];
103
+ let filesIngested = 0;
104
+ let filesFailed = 0;
105
+ let totalEpisodes = 0;
106
+ let totalEntities = 0;
107
+ let totalRelations = 0;
108
+ try {
109
+ const batchResp = await client.ingestBatchNotes(parsedNotes.map((n) => ({
110
+ userId: options.userId,
111
+ groupId,
112
+ noteId: n.noteId,
113
+ content: n.content,
114
+ timestamp: n.timestamp,
115
+ })), { concurrency: 3 });
116
+ // Report per-item results
117
+ for (let i = 0; i < batchResp.items.length; i++) {
118
+ const item = batchResp.items[i];
119
+ const filename = parsedNotes[i]?.filename ?? `note-${i}`;
120
+ options.onProgress?.(i + 1, parsedNotes.length, filename);
121
+ if (item.status === "ok") {
122
+ filesIngested++;
123
+ }
124
+ else {
125
+ filesFailed++;
126
+ errors.push(`${filename}: ${item.error ?? "unknown error"}`);
127
+ }
128
+ }
129
+ totalEpisodes = batchResp.combined.EpisodeCount;
130
+ totalEntities = batchResp.combined.EntityCount;
131
+ totalRelations = batchResp.combined.RelationCount;
132
+ }
133
+ catch {
134
+ // Batch endpoint not available — fall back to sequential
135
+ for (let i = 0; i < parsedNotes.length; i++) {
136
+ const note = parsedNotes[i];
137
+ options.onProgress?.(i + 1, parsedNotes.length, note.filename);
138
+ try {
139
+ const result = await client.ingestNote(options.userId, note.content, { groupId, noteId: note.noteId, timestamp: note.timestamp });
140
+ filesIngested++;
141
+ totalEpisodes += result.EpisodeCount;
142
+ totalEntities += result.EntityCount;
143
+ totalRelations += result.RelationCount;
144
+ }
145
+ catch (err) {
146
+ filesFailed++;
147
+ const msg = err instanceof Error ? err.message : String(err);
148
+ errors.push(`${note.filename}: ${msg}`);
149
+ }
150
+ }
151
+ }
152
+ // 4. Trigger consolidation after migration
153
+ try {
154
+ await client.consolidate(options.userId);
155
+ }
156
+ catch (err) {
157
+ const msg = err instanceof Error ? err.message : String(err);
158
+ errors.push(`Consolidation failed: ${msg}`);
159
+ }
160
+ return {
161
+ filesFound: files.length,
162
+ filesIngested,
163
+ filesFailed,
164
+ totalEpisodes,
165
+ totalEntities,
166
+ totalRelations,
167
+ errors,
168
+ };
169
+ }
170
+ /** Check if a user has existing Mimir data. */
171
+ export async function hasExistingData(client, userId) {
172
+ try {
173
+ const resp = await client.search(userId, "memory", { topK: 1 });
174
+ return resp.results.length > 0;
175
+ }
176
+ catch {
177
+ return false;
178
+ }
179
+ }
180
+ /** Check if local memory files exist. */
181
+ export async function hasLocalMemories() {
182
+ for (const dir of findMemoryPaths()) {
183
+ const files = await discoverMemoryFiles(dir);
184
+ if (files.length > 0)
185
+ return true;
186
+ }
187
+ return false;
188
+ }
189
+ //# sourceMappingURL=migration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migration.js","sourceRoot":"","sources":["../src/migration.ts"],"names":[],"mappings":"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"}