@mycelish/cli 0.2.5 → 0.2.6

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.
Files changed (112) hide show
  1. package/dist/__tests__/unified-item-state.integration.test.js +0 -5
  2. package/dist/__tests__/unified-item-state.integration.test.js.map +1 -1
  3. package/dist/commands/doctor.d.ts +1 -1
  4. package/dist/commands/doctor.d.ts.map +1 -1
  5. package/dist/commands/doctor.js +1 -1
  6. package/dist/commands/doctor.js.map +1 -1
  7. package/dist/commands/doctor.test.js +0 -59
  8. package/dist/commands/doctor.test.js.map +1 -1
  9. package/dist/commands/health-checks/index.d.ts +0 -1
  10. package/dist/commands/health-checks/index.d.ts.map +1 -1
  11. package/dist/commands/health-checks/index.js +0 -1
  12. package/dist/commands/health-checks/index.js.map +1 -1
  13. package/dist/commands/health-checks/runner.d.ts.map +1 -1
  14. package/dist/commands/health-checks/runner.js +5 -19
  15. package/dist/commands/health-checks/runner.js.map +1 -1
  16. package/dist/commands/init.js +2 -2
  17. package/dist/commands/init.js.map +1 -1
  18. package/dist/commands/migrate.d.ts.map +1 -1
  19. package/dist/commands/migrate.js +6 -12
  20. package/dist/commands/migrate.js.map +1 -1
  21. package/dist/commands/preset.js +0 -3
  22. package/dist/commands/preset.js.map +1 -1
  23. package/dist/commands/preset.test.js +1 -5
  24. package/dist/commands/preset.test.js.map +1 -1
  25. package/dist/commands/status.d.ts +0 -2
  26. package/dist/commands/status.d.ts.map +1 -1
  27. package/dist/commands/status.js +2 -30
  28. package/dist/commands/status.js.map +1 -1
  29. package/dist/commands/status.test.d.ts +0 -1
  30. package/dist/commands/status.test.d.ts.map +1 -1
  31. package/dist/commands/status.test.js +1 -22
  32. package/dist/commands/status.test.js.map +1 -1
  33. package/dist/commands/sync.d.ts +0 -1
  34. package/dist/commands/sync.d.ts.map +1 -1
  35. package/dist/commands/sync.js +0 -21
  36. package/dist/commands/sync.js.map +1 -1
  37. package/dist/commands/sync.test.js +0 -41
  38. package/dist/commands/sync.test.js.map +1 -1
  39. package/dist/core/config-merger.d.ts.map +1 -1
  40. package/dist/core/config-merger.js +0 -25
  41. package/dist/core/config-merger.js.map +1 -1
  42. package/dist/core/fs-helpers.d.ts +0 -3
  43. package/dist/core/fs-helpers.d.ts.map +1 -1
  44. package/dist/core/fs-helpers.js +0 -6
  45. package/dist/core/fs-helpers.js.map +1 -1
  46. package/dist/core/fs-helpers.test.js +0 -4
  47. package/dist/core/fs-helpers.test.js.map +1 -1
  48. package/dist/core/migrator/executor.d.ts.map +1 -1
  49. package/dist/core/migrator/executor.js +0 -29
  50. package/dist/core/migrator/executor.js.map +1 -1
  51. package/dist/core/migrator/planner.d.ts.map +1 -1
  52. package/dist/core/migrator/planner.js +0 -3
  53. package/dist/core/migrator/planner.js.map +1 -1
  54. package/dist/core/migrator/scanners.d.ts.map +1 -1
  55. package/dist/core/migrator/scanners.js +1 -95
  56. package/dist/core/migrator/scanners.js.map +1 -1
  57. package/dist/core/migrator/scanners.test.js +0 -15
  58. package/dist/core/migrator/scanners.test.js.map +1 -1
  59. package/dist/core/migrator.test.js +8 -48
  60. package/dist/core/migrator.test.js.map +1 -1
  61. package/dist/core/presets.d.ts +1 -7
  62. package/dist/core/presets.d.ts.map +1 -1
  63. package/dist/core/presets.js +1 -2
  64. package/dist/core/presets.js.map +1 -1
  65. package/dist/core/state-verifier.d.ts +1 -1
  66. package/dist/core/state-verifier.d.ts.map +1 -1
  67. package/dist/core/state-verifier.js +2 -6
  68. package/dist/core/state-verifier.js.map +1 -1
  69. package/dist/core/state-verifier.test.js +1 -1
  70. package/dist/core/state-verifier.test.js.map +1 -1
  71. package/dist/core/watcher.d.ts.map +1 -1
  72. package/dist/core/watcher.js +0 -6
  73. package/dist/core/watcher.js.map +1 -1
  74. package/dist/core/watcher.test.js +0 -9
  75. package/dist/core/watcher.test.js.map +1 -1
  76. package/dist/dashboard/assets/index-Bnzy2ItZ.js +150 -0
  77. package/dist/dashboard/index.html +1 -1
  78. package/dist/mcp/resources.js +1 -1
  79. package/dist/mcp/resources.js.map +1 -1
  80. package/dist/mcp/server.d.ts.map +1 -1
  81. package/dist/mcp/server.js +0 -2
  82. package/dist/mcp/server.js.map +1 -1
  83. package/package.json +2 -2
  84. package/dist/commands/health-checks/memory-check.d.ts +0 -15
  85. package/dist/commands/health-checks/memory-check.d.ts.map +0 -1
  86. package/dist/commands/health-checks/memory-check.js +0 -92
  87. package/dist/commands/health-checks/memory-check.js.map +0 -1
  88. package/dist/core/memory-scoper.d.ts +0 -43
  89. package/dist/core/memory-scoper.d.ts.map +0 -1
  90. package/dist/core/memory-scoper.js +0 -165
  91. package/dist/core/memory-scoper.js.map +0 -1
  92. package/dist/core/memory-scoper.test.d.ts +0 -6
  93. package/dist/core/memory-scoper.test.d.ts.map +0 -1
  94. package/dist/core/memory-scoper.test.js +0 -440
  95. package/dist/core/memory-scoper.test.js.map +0 -1
  96. package/dist/core/smart-memory.d.ts +0 -22
  97. package/dist/core/smart-memory.d.ts.map +0 -1
  98. package/dist/core/smart-memory.js +0 -63
  99. package/dist/core/smart-memory.js.map +0 -1
  100. package/dist/core/smart-memory.test.d.ts +0 -2
  101. package/dist/core/smart-memory.test.d.ts.map +0 -1
  102. package/dist/core/smart-memory.test.js +0 -87
  103. package/dist/core/smart-memory.test.js.map +0 -1
  104. package/dist/dashboard/assets/index-Chu8Q2VW.js +0 -150
  105. package/dist/mcp/tools/memory-tools.d.ts +0 -3
  106. package/dist/mcp/tools/memory-tools.d.ts.map +0 -1
  107. package/dist/mcp/tools/memory-tools.js +0 -68
  108. package/dist/mcp/tools/memory-tools.js.map +0 -1
  109. package/dist/mcp/tools/memory-tools.test.d.ts +0 -2
  110. package/dist/mcp/tools/memory-tools.test.d.ts.map +0 -1
  111. package/dist/mcp/tools/memory-tools.test.js +0 -144
  112. package/dist/mcp/tools/memory-tools.test.js.map +0 -1
@@ -1,440 +0,0 @@
1
- /**
2
- * Tests for memory-scoper module
3
- * TDD: Write tests first, then implement
4
- */
5
- import { describe, it, expect, vi, beforeEach } from "vitest";
6
- // Mock fs/promises
7
- vi.mock("node:fs/promises", () => ({
8
- readdir: vi.fn(),
9
- readFile: vi.fn(),
10
- writeFile: vi.fn(),
11
- mkdir: vi.fn(),
12
- access: vi.fn(),
13
- }));
14
- // Mock @mycelish/core utilities
15
- vi.mock("@mycelish/core", async () => {
16
- const actual = await vi.importActual("@mycelish/core");
17
- return {
18
- ...actual,
19
- expandPath: vi.fn((p) => p.replace("~", "/home/user")),
20
- ensureDir: vi.fn(),
21
- pathExists: vi.fn(),
22
- };
23
- });
24
- describe("memory-scoper", () => {
25
- beforeEach(() => {
26
- vi.clearAllMocks();
27
- });
28
- describe("MEMORY_SCOPE_CONFIG", () => {
29
- it("should define shared scope syncing to all tools", async () => {
30
- const { MEMORY_SCOPE_CONFIG } = await import("./memory-scoper.js");
31
- expect(MEMORY_SCOPE_CONFIG.shared.syncTo).toEqual([
32
- "claude-code",
33
- "codex",
34
- "gemini-cli",
35
- "opencode",
36
- "openclaw",
37
- "cursor",
38
- "vscode",
39
- "antigravity",
40
- ]);
41
- expect(MEMORY_SCOPE_CONFIG.shared.path).toBe("global/memory/shared/");
42
- });
43
- it("should define coding scope excluding openclaw", async () => {
44
- const { MEMORY_SCOPE_CONFIG } = await import("./memory-scoper.js");
45
- expect(MEMORY_SCOPE_CONFIG.coding.syncTo).toEqual([
46
- "claude-code",
47
- "codex",
48
- "gemini-cli",
49
- "opencode",
50
- "cursor",
51
- "vscode",
52
- "antigravity",
53
- ]);
54
- expect(MEMORY_SCOPE_CONFIG.coding.excludeFrom).toEqual(["openclaw"]);
55
- expect(MEMORY_SCOPE_CONFIG.coding.path).toBe("global/memory/coding/");
56
- });
57
- it("should define personal scope only for openclaw", async () => {
58
- const { MEMORY_SCOPE_CONFIG } = await import("./memory-scoper.js");
59
- expect(MEMORY_SCOPE_CONFIG.personal.syncTo).toEqual(["openclaw"]);
60
- expect(MEMORY_SCOPE_CONFIG.personal.excludeFrom).toEqual([
61
- "claude-code",
62
- "codex",
63
- "gemini-cli",
64
- "opencode",
65
- "cursor",
66
- "vscode",
67
- "antigravity",
68
- ]);
69
- expect(MEMORY_SCOPE_CONFIG.personal.path).toBe("global/memory/personal/");
70
- });
71
- });
72
- describe("isToolInScope", () => {
73
- it("should return true for claude-code in shared scope", async () => {
74
- const { isToolInScope } = await import("./memory-scoper.js");
75
- expect(isToolInScope("claude-code", "shared")).toBe(true);
76
- });
77
- it("should return true for claude-code in coding scope", async () => {
78
- const { isToolInScope } = await import("./memory-scoper.js");
79
- expect(isToolInScope("claude-code", "coding")).toBe(true);
80
- });
81
- it("should return false for claude-code in personal scope", async () => {
82
- const { isToolInScope } = await import("./memory-scoper.js");
83
- expect(isToolInScope("claude-code", "personal")).toBe(false);
84
- });
85
- it("should return true for openclaw in shared scope", async () => {
86
- const { isToolInScope } = await import("./memory-scoper.js");
87
- expect(isToolInScope("openclaw", "shared")).toBe(true);
88
- });
89
- it("should return false for openclaw in coding scope", async () => {
90
- const { isToolInScope } = await import("./memory-scoper.js");
91
- expect(isToolInScope("openclaw", "coding")).toBe(false);
92
- });
93
- it("should return true for openclaw in personal scope", async () => {
94
- const { isToolInScope } = await import("./memory-scoper.js");
95
- expect(isToolInScope("openclaw", "personal")).toBe(true);
96
- });
97
- });
98
- describe("getScopesForTool", () => {
99
- it("should return shared and coding scopes for claude-code", async () => {
100
- const { getScopesForTool } = await import("./memory-scoper.js");
101
- const scopes = getScopesForTool("claude-code");
102
- expect(scopes).toEqual(["shared", "coding"]);
103
- });
104
- it("should return shared and coding scopes for codex", async () => {
105
- const { getScopesForTool } = await import("./memory-scoper.js");
106
- const scopes = getScopesForTool("codex");
107
- expect(scopes).toEqual(["shared", "coding"]);
108
- });
109
- it("should return shared and coding scopes for gemini-cli", async () => {
110
- const { getScopesForTool } = await import("./memory-scoper.js");
111
- const scopes = getScopesForTool("gemini-cli");
112
- expect(scopes).toEqual(["shared", "coding"]);
113
- });
114
- it("should return shared and coding scopes for opencode", async () => {
115
- const { getScopesForTool } = await import("./memory-scoper.js");
116
- const scopes = getScopesForTool("opencode");
117
- expect(scopes).toEqual(["shared", "coding"]);
118
- });
119
- it("should return shared and personal scopes for openclaw", async () => {
120
- const { getScopesForTool } = await import("./memory-scoper.js");
121
- const scopes = getScopesForTool("openclaw");
122
- expect(scopes).toEqual(["shared", "personal"]);
123
- });
124
- });
125
- describe("getMemoryFilesForTool", () => {
126
- it("should return files from shared and coding scopes for claude-code", async () => {
127
- const fs = await import("node:fs/promises");
128
- const { pathExists } = await import("@mycelish/core");
129
- const { getMemoryFilesForTool } = await import("./memory-scoper.js");
130
- vi.mocked(pathExists).mockResolvedValue(true);
131
- vi.mocked(fs.readdir).mockImplementation(async (dir) => {
132
- const dirStr = dir.toString();
133
- if (dirStr.includes("shared")) {
134
- return ["context.md", "preferences.md"];
135
- }
136
- if (dirStr.includes("coding")) {
137
- return ["coding-style.md", "tech-stack.md"];
138
- }
139
- return [];
140
- });
141
- const files = await getMemoryFilesForTool("claude-code");
142
- expect(files).toHaveLength(4);
143
- expect(files).toContainEqual(expect.objectContaining({
144
- scope: "shared",
145
- filename: "context.md",
146
- }));
147
- expect(files).toContainEqual(expect.objectContaining({
148
- scope: "shared",
149
- filename: "preferences.md",
150
- }));
151
- expect(files).toContainEqual(expect.objectContaining({
152
- scope: "coding",
153
- filename: "coding-style.md",
154
- }));
155
- expect(files).toContainEqual(expect.objectContaining({
156
- scope: "coding",
157
- filename: "tech-stack.md",
158
- }));
159
- });
160
- it("should return files from shared and personal scopes for openclaw", async () => {
161
- const fs = await import("node:fs/promises");
162
- const { pathExists } = await import("@mycelish/core");
163
- const { getMemoryFilesForTool } = await import("./memory-scoper.js");
164
- vi.mocked(pathExists).mockResolvedValue(true);
165
- vi.mocked(fs.readdir).mockImplementation(async (dir) => {
166
- const dirStr = dir.toString();
167
- if (dirStr.includes("shared")) {
168
- return ["context.md"];
169
- }
170
- if (dirStr.includes("personal")) {
171
- return ["private-notes.md", "diary.md"];
172
- }
173
- return [];
174
- });
175
- const files = await getMemoryFilesForTool("openclaw");
176
- expect(files).toHaveLength(3);
177
- expect(files).toContainEqual(expect.objectContaining({
178
- scope: "shared",
179
- filename: "context.md",
180
- }));
181
- expect(files).toContainEqual(expect.objectContaining({
182
- scope: "personal",
183
- filename: "private-notes.md",
184
- }));
185
- expect(files).toContainEqual(expect.objectContaining({
186
- scope: "personal",
187
- filename: "diary.md",
188
- }));
189
- });
190
- it("should NOT return coding files for openclaw", async () => {
191
- const fs = await import("node:fs/promises");
192
- const { pathExists } = await import("@mycelish/core");
193
- const { getMemoryFilesForTool } = await import("./memory-scoper.js");
194
- vi.mocked(pathExists).mockResolvedValue(true);
195
- vi.mocked(fs.readdir).mockImplementation(async (dir) => {
196
- const dirStr = dir.toString();
197
- if (dirStr.includes("shared")) {
198
- return ["context.md"];
199
- }
200
- if (dirStr.includes("coding")) {
201
- return ["coding-style.md"];
202
- }
203
- if (dirStr.includes("personal")) {
204
- return ["private.md"];
205
- }
206
- return [];
207
- });
208
- const files = await getMemoryFilesForTool("openclaw");
209
- // Should NOT include coding files
210
- expect(files.some((f) => f.scope === "coding")).toBe(false);
211
- expect(files.some((f) => f.filename === "coding-style.md")).toBe(false);
212
- });
213
- it("should return empty array when scope directories do not exist", async () => {
214
- const { pathExists } = await import("@mycelish/core");
215
- const { getMemoryFilesForTool } = await import("./memory-scoper.js");
216
- vi.mocked(pathExists).mockResolvedValue(false);
217
- const files = await getMemoryFilesForTool("claude-code");
218
- expect(files).toEqual([]);
219
- });
220
- it("should only include .md files", async () => {
221
- const fs = await import("node:fs/promises");
222
- const { pathExists } = await import("@mycelish/core");
223
- const { getMemoryFilesForTool } = await import("./memory-scoper.js");
224
- vi.mocked(pathExists).mockResolvedValue(true);
225
- vi.mocked(fs.readdir).mockImplementation(async (dir) => {
226
- const dirStr = dir.toString();
227
- if (dirStr.includes("shared")) {
228
- return [
229
- "context.md",
230
- "image.png",
231
- "data.json",
232
- "notes.md",
233
- ];
234
- }
235
- return [];
236
- });
237
- const files = await getMemoryFilesForTool("claude-code");
238
- expect(files).toHaveLength(2);
239
- expect(files.every((f) => f.filename.endsWith(".md"))).toBe(true);
240
- });
241
- });
242
- describe("loadMemoryFiles", () => {
243
- it("should load all memory files from a scope directory", async () => {
244
- const fs = await import("node:fs/promises");
245
- const { pathExists } = await import("@mycelish/core");
246
- const { loadMemoryFiles } = await import("./memory-scoper.js");
247
- vi.mocked(pathExists).mockResolvedValue(true);
248
- vi.mocked(fs.readdir).mockResolvedValue([
249
- "file1.md",
250
- "file2.md",
251
- ]);
252
- vi.mocked(fs.readFile).mockImplementation(async (path) => {
253
- const pathStr = path.toString();
254
- if (pathStr.includes("file1.md")) {
255
- return "# File 1 content";
256
- }
257
- if (pathStr.includes("file2.md")) {
258
- return "# File 2 content";
259
- }
260
- return "";
261
- });
262
- const files = await loadMemoryFiles("shared");
263
- expect(files).toHaveLength(2);
264
- expect(files[0]).toEqual({
265
- scope: "shared",
266
- filename: "file1.md",
267
- path: expect.stringContaining("file1.md"),
268
- content: "# File 1 content",
269
- });
270
- expect(files[1]).toEqual({
271
- scope: "shared",
272
- filename: "file2.md",
273
- path: expect.stringContaining("file2.md"),
274
- content: "# File 2 content",
275
- });
276
- });
277
- it("should return empty array when scope directory does not exist", async () => {
278
- const { pathExists } = await import("@mycelish/core");
279
- const { loadMemoryFiles } = await import("./memory-scoper.js");
280
- vi.mocked(pathExists).mockResolvedValue(false);
281
- const files = await loadMemoryFiles("personal");
282
- expect(files).toEqual([]);
283
- });
284
- });
285
- describe("syncMemoryToTool", () => {
286
- it("should concatenate memory files and write to tool path", async () => {
287
- const fs = await import("node:fs/promises");
288
- const { pathExists, ensureDir } = await import("@mycelish/core");
289
- const { syncMemoryToTool } = await import("./memory-scoper.js");
290
- vi.mocked(pathExists).mockResolvedValue(true);
291
- vi.mocked(fs.readdir).mockImplementation(async (dir) => {
292
- const dirStr = dir.toString();
293
- if (dirStr.includes("shared")) {
294
- return ["context.md"];
295
- }
296
- if (dirStr.includes("coding")) {
297
- return ["style.md"];
298
- }
299
- return [];
300
- });
301
- vi.mocked(fs.readFile).mockImplementation(async (path) => {
302
- const pathStr = path.toString();
303
- if (pathStr.includes("context.md")) {
304
- return "# Context\nShared content here";
305
- }
306
- if (pathStr.includes("style.md")) {
307
- return "# Style Guide\nCoding style content";
308
- }
309
- return "";
310
- });
311
- vi.mocked(fs.writeFile).mockResolvedValue();
312
- const result = await syncMemoryToTool("claude-code");
313
- expect(result.success).toBe(true);
314
- expect(result.filesWritten).toBe(1);
315
- expect(fs.writeFile).toHaveBeenCalledTimes(1);
316
- const writeCall = vi.mocked(fs.writeFile).mock.calls[0];
317
- const writtenContent = writeCall[1];
318
- expect(writtenContent).toContain("# Context");
319
- expect(writtenContent).toContain("# Style Guide");
320
- });
321
- it("should add scope headers between sections", async () => {
322
- const fs = await import("node:fs/promises");
323
- const { pathExists, ensureDir } = await import("@mycelish/core");
324
- const { syncMemoryToTool } = await import("./memory-scoper.js");
325
- vi.mocked(pathExists).mockResolvedValue(true);
326
- vi.mocked(fs.readdir).mockImplementation(async (dir) => {
327
- const dirStr = dir.toString();
328
- if (dirStr.includes("shared")) {
329
- return ["a.md", "b.md"];
330
- }
331
- if (dirStr.includes("coding")) {
332
- return ["c.md"];
333
- }
334
- return [];
335
- });
336
- vi.mocked(fs.readFile).mockImplementation(async (path) => {
337
- const pathStr = path.toString();
338
- if (pathStr.includes("a.md"))
339
- return "Content A";
340
- if (pathStr.includes("b.md"))
341
- return "Content B";
342
- if (pathStr.includes("c.md"))
343
- return "Content C";
344
- return "";
345
- });
346
- vi.mocked(fs.writeFile).mockResolvedValue();
347
- await syncMemoryToTool("codex");
348
- const writeCall = vi.mocked(fs.writeFile).mock.calls[0];
349
- const writtenContent = writeCall[1];
350
- // Verify content order: shared files before coding files
351
- const contentAIndex = writtenContent.indexOf("Content A");
352
- const contentBIndex = writtenContent.indexOf("Content B");
353
- const contentCIndex = writtenContent.indexOf("Content C");
354
- expect(contentAIndex).toBeLessThan(contentBIndex);
355
- expect(contentBIndex).toBeLessThan(contentCIndex);
356
- });
357
- it("should write to correct tool memory path", async () => {
358
- const fs = await import("node:fs/promises");
359
- const { pathExists, ensureDir } = await import("@mycelish/core");
360
- const { syncMemoryToTool } = await import("./memory-scoper.js");
361
- vi.mocked(pathExists).mockResolvedValue(true);
362
- vi.mocked(fs.readdir).mockResolvedValue([
363
- "test.md",
364
- ]);
365
- vi.mocked(fs.readFile).mockResolvedValue("test content");
366
- vi.mocked(fs.writeFile).mockResolvedValue();
367
- await syncMemoryToTool("claude-code");
368
- // Should write to expanded claude-code memory path
369
- expect(fs.writeFile).toHaveBeenCalledWith("/home/user/.claude/CLAUDE.md", expect.any(String), "utf-8");
370
- });
371
- it("should ensure target directory exists before writing", async () => {
372
- const fs = await import("node:fs/promises");
373
- const { pathExists, ensureDir } = await import("@mycelish/core");
374
- const { syncMemoryToTool } = await import("./memory-scoper.js");
375
- vi.mocked(pathExists).mockResolvedValue(true);
376
- vi.mocked(fs.readdir).mockResolvedValue([
377
- "test.md",
378
- ]);
379
- vi.mocked(fs.readFile).mockResolvedValue("test content");
380
- vi.mocked(fs.writeFile).mockResolvedValue();
381
- await syncMemoryToTool("opencode");
382
- expect(ensureDir).toHaveBeenCalledWith("/home/user/.opencode");
383
- });
384
- it("should sync personal scope only to openclaw", async () => {
385
- const fs = await import("node:fs/promises");
386
- const { pathExists, ensureDir } = await import("@mycelish/core");
387
- const { syncMemoryToTool } = await import("./memory-scoper.js");
388
- vi.mocked(pathExists).mockResolvedValue(true);
389
- vi.mocked(fs.readdir).mockImplementation(async (dir) => {
390
- const dirStr = dir.toString();
391
- if (dirStr.includes("shared")) {
392
- return ["shared.md"];
393
- }
394
- if (dirStr.includes("personal")) {
395
- return ["personal.md"];
396
- }
397
- return [];
398
- });
399
- vi.mocked(fs.readFile).mockImplementation(async (path) => {
400
- const pathStr = path.toString();
401
- if (pathStr.includes("shared.md"))
402
- return "Shared content";
403
- if (pathStr.includes("personal.md"))
404
- return "Personal content";
405
- return "";
406
- });
407
- vi.mocked(fs.writeFile).mockResolvedValue();
408
- await syncMemoryToTool("openclaw");
409
- const writeCall = vi.mocked(fs.writeFile).mock.calls[0];
410
- const writtenContent = writeCall[1];
411
- expect(writtenContent).toContain("Shared content");
412
- expect(writtenContent).toContain("Personal content");
413
- });
414
- it("should return error result when write fails", async () => {
415
- const fs = await import("node:fs/promises");
416
- const { pathExists, ensureDir } = await import("@mycelish/core");
417
- const { syncMemoryToTool } = await import("./memory-scoper.js");
418
- vi.mocked(pathExists).mockResolvedValue(true);
419
- vi.mocked(fs.readdir).mockResolvedValue([
420
- "test.md",
421
- ]);
422
- vi.mocked(fs.readFile).mockResolvedValue("test content");
423
- vi.mocked(fs.writeFile).mockRejectedValue(new Error("Permission denied"));
424
- const result = await syncMemoryToTool("claude-code");
425
- expect(result.success).toBe(false);
426
- expect(result.error).toBe("Permission denied");
427
- });
428
- it("should handle empty memory files gracefully", async () => {
429
- const fs = await import("node:fs/promises");
430
- const { pathExists } = await import("@mycelish/core");
431
- const { syncMemoryToTool } = await import("./memory-scoper.js");
432
- vi.mocked(pathExists).mockResolvedValue(false);
433
- const result = await syncMemoryToTool("claude-code");
434
- expect(result.success).toBe(true);
435
- expect(result.filesWritten).toBe(0);
436
- expect(fs.writeFile).not.toHaveBeenCalled();
437
- });
438
- });
439
- });
440
- //# sourceMappingURL=memory-scoper.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"memory-scoper.test.js","sourceRoot":"","sources":["../../src/core/memory-scoper.test.ts"],"names":[],"mappings":"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"}
@@ -1,22 +0,0 @@
1
- /**
2
- * Smart Memory Module
3
- * Compresses, deduplicates, and intelligently syncs memory across tools
4
- */
5
- interface CompressOptions {
6
- maxLines: number;
7
- preserveHeaders?: boolean;
8
- }
9
- /**
10
- * Compress memory content to fit within line limits.
11
- * Prioritizes: headers > key insights > recent content > verbose details
12
- */
13
- export declare function compressMemory(content: string, options: CompressOptions): string;
14
- /**
15
- * Merge multiple memory files with deduplication
16
- */
17
- export declare function mergeMemoryFiles(files: Array<{
18
- scope: string;
19
- content: string;
20
- }>): string;
21
- export {};
22
- //# sourceMappingURL=smart-memory.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"smart-memory.d.ts","sourceRoot":"","sources":["../../src/core/smart-memory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,UAAU,eAAe;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAID;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,MAAM,CA8BhF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,GAC/C,MAAM,CAwBR"}
@@ -1,63 +0,0 @@
1
- /**
2
- * Smart Memory Module
3
- * Compresses, deduplicates, and intelligently syncs memory across tools
4
- */
5
- const KEY_INSIGHT_PATTERN = /^[-*]\s*(Bug|Fix|Pattern|Important|Note|Key|Critical|Rule|Lesson|Remember):/i;
6
- /**
7
- * Compress memory content to fit within line limits.
8
- * Prioritizes: headers > key insights > recent content > verbose details
9
- */
10
- export function compressMemory(content, options) {
11
- const { maxLines, preserveHeaders = true } = options;
12
- const lines = content.split("\n");
13
- if (lines.length <= maxLines)
14
- return content;
15
- const headers = [];
16
- const keyInsights = [];
17
- const other = [];
18
- for (const line of lines) {
19
- if (line.startsWith("#")) {
20
- headers.push(line);
21
- }
22
- else if (KEY_INSIGHT_PATTERN.test(line)) {
23
- keyInsights.push(line);
24
- }
25
- else {
26
- other.push(line);
27
- }
28
- }
29
- const result = [];
30
- if (preserveHeaders)
31
- result.push(...headers);
32
- result.push(...keyInsights);
33
- const remaining = maxLines - result.length;
34
- if (remaining > 0) {
35
- result.push(...other.slice(-remaining));
36
- }
37
- return result.slice(0, maxLines).join("\n");
38
- }
39
- /**
40
- * Merge multiple memory files with deduplication
41
- */
42
- export function mergeMemoryFiles(files) {
43
- const seen = new Set();
44
- const sections = [];
45
- for (const file of files) {
46
- const lines = file.content.split("\n");
47
- const uniqueLines = [];
48
- for (const line of lines) {
49
- const normalized = line.trim().toLowerCase();
50
- if (normalized === "" || normalized.startsWith("#")) {
51
- uniqueLines.push(line);
52
- continue;
53
- }
54
- if (!seen.has(normalized)) {
55
- seen.add(normalized);
56
- uniqueLines.push(line);
57
- }
58
- }
59
- sections.push(uniqueLines.join("\n"));
60
- }
61
- return sections.join("\n\n");
62
- }
63
- //# sourceMappingURL=smart-memory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"smart-memory.js","sourceRoot":"","sources":["../../src/core/smart-memory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,MAAM,mBAAmB,GAAG,8EAA8E,CAAC;AAE3G;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,OAAe,EAAE,OAAwB;IACtE,MAAM,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IACrD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAElC,IAAI,KAAK,CAAC,MAAM,IAAI,QAAQ;QAAE,OAAO,OAAO,CAAC;IAE7C,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;aAAM,IAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1C,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,eAAe;QAAE,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;IAC7C,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;IAE5B,MAAM,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;IAC3C,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAClB,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAAgD;IAEhD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,WAAW,GAAa,EAAE,CAAC;QAEjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAC7C,IAAI,UAAU,KAAK,EAAE,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpD,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACvB,SAAS;YACX,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC1B,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBACrB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAED,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=smart-memory.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"smart-memory.test.d.ts","sourceRoot":"","sources":["../../src/core/smart-memory.test.ts"],"names":[],"mappings":""}