@waynesutton/agent-memory 0.0.1-alpha.1

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 (200) hide show
  1. package/.claude/settings.json +9 -0
  2. package/.claude/settings.local.json +7 -0
  3. package/AGENTS.md +113 -0
  4. package/CLAUDE.md +79 -0
  5. package/README.md +1003 -0
  6. package/dist/cli/index.d.ts +3 -0
  7. package/dist/cli/index.d.ts.map +1 -0
  8. package/dist/cli/index.js +192 -0
  9. package/dist/cli/index.js.map +1 -0
  10. package/dist/cli/parsers/claude-code.d.ts +3 -0
  11. package/dist/cli/parsers/claude-code.d.ts.map +1 -0
  12. package/dist/cli/parsers/claude-code.js +75 -0
  13. package/dist/cli/parsers/claude-code.js.map +1 -0
  14. package/dist/cli/parsers/codex.d.ts +3 -0
  15. package/dist/cli/parsers/codex.d.ts.map +1 -0
  16. package/dist/cli/parsers/codex.js +42 -0
  17. package/dist/cli/parsers/codex.js.map +1 -0
  18. package/dist/cli/parsers/conductor.d.ts +3 -0
  19. package/dist/cli/parsers/conductor.d.ts.map +1 -0
  20. package/dist/cli/parsers/conductor.js +43 -0
  21. package/dist/cli/parsers/conductor.js.map +1 -0
  22. package/dist/cli/parsers/cursor.d.ts +3 -0
  23. package/dist/cli/parsers/cursor.d.ts.map +1 -0
  24. package/dist/cli/parsers/cursor.js +50 -0
  25. package/dist/cli/parsers/cursor.js.map +1 -0
  26. package/dist/cli/parsers/index.d.ts +12 -0
  27. package/dist/cli/parsers/index.d.ts.map +1 -0
  28. package/dist/cli/parsers/index.js +27 -0
  29. package/dist/cli/parsers/index.js.map +1 -0
  30. package/dist/cli/parsers/opencode.d.ts +3 -0
  31. package/dist/cli/parsers/opencode.d.ts.map +1 -0
  32. package/dist/cli/parsers/opencode.js +72 -0
  33. package/dist/cli/parsers/opencode.js.map +1 -0
  34. package/dist/cli/parsers/parsers.test.d.ts +2 -0
  35. package/dist/cli/parsers/parsers.test.d.ts.map +1 -0
  36. package/dist/cli/parsers/parsers.test.js +151 -0
  37. package/dist/cli/parsers/parsers.test.js.map +1 -0
  38. package/dist/cli/parsers/pi.d.ts +3 -0
  39. package/dist/cli/parsers/pi.d.ts.map +1 -0
  40. package/dist/cli/parsers/pi.js +43 -0
  41. package/dist/cli/parsers/pi.js.map +1 -0
  42. package/dist/cli/parsers/types.d.ts +25 -0
  43. package/dist/cli/parsers/types.d.ts.map +1 -0
  44. package/dist/cli/parsers/types.js +2 -0
  45. package/dist/cli/parsers/types.js.map +1 -0
  46. package/dist/cli/parsers/vscode-copilot.d.ts +3 -0
  47. package/dist/cli/parsers/vscode-copilot.d.ts.map +1 -0
  48. package/dist/cli/parsers/vscode-copilot.js +69 -0
  49. package/dist/cli/parsers/vscode-copilot.js.map +1 -0
  50. package/dist/cli/parsers/zed.d.ts +3 -0
  51. package/dist/cli/parsers/zed.d.ts.map +1 -0
  52. package/dist/cli/parsers/zed.js +43 -0
  53. package/dist/cli/parsers/zed.js.map +1 -0
  54. package/dist/cli/sync.d.ts +21 -0
  55. package/dist/cli/sync.d.ts.map +1 -0
  56. package/dist/cli/sync.js +78 -0
  57. package/dist/cli/sync.js.map +1 -0
  58. package/dist/cli/type-extractor.d.ts +25 -0
  59. package/dist/cli/type-extractor.d.ts.map +1 -0
  60. package/dist/cli/type-extractor.js +254 -0
  61. package/dist/cli/type-extractor.js.map +1 -0
  62. package/dist/cli/type-extractor.test.d.ts +2 -0
  63. package/dist/cli/type-extractor.test.d.ts.map +1 -0
  64. package/dist/cli/type-extractor.test.js +173 -0
  65. package/dist/cli/type-extractor.test.js.map +1 -0
  66. package/dist/client/http.d.ts +44 -0
  67. package/dist/client/http.d.ts.map +1 -0
  68. package/dist/client/http.js +311 -0
  69. package/dist/client/http.js.map +1 -0
  70. package/dist/client/index.d.ts +158 -0
  71. package/dist/client/index.d.ts.map +1 -0
  72. package/dist/client/index.js +256 -0
  73. package/dist/client/index.js.map +1 -0
  74. package/dist/component/_generated/api.d.ts +12 -0
  75. package/dist/component/_generated/api.d.ts.map +1 -0
  76. package/dist/component/_generated/api.js +13 -0
  77. package/dist/component/_generated/api.js.map +1 -0
  78. package/dist/component/_generated/dataModel.d.ts +18 -0
  79. package/dist/component/_generated/dataModel.d.ts.map +1 -0
  80. package/dist/component/_generated/dataModel.js +11 -0
  81. package/dist/component/_generated/dataModel.js.map +1 -0
  82. package/dist/component/_generated/server.d.ts +42 -0
  83. package/dist/component/_generated/server.d.ts.map +1 -0
  84. package/dist/component/_generated/server.js +39 -0
  85. package/dist/component/_generated/server.js.map +1 -0
  86. package/dist/component/actions.d.ts +42 -0
  87. package/dist/component/actions.d.ts.map +1 -0
  88. package/dist/component/actions.js +405 -0
  89. package/dist/component/actions.js.map +1 -0
  90. package/dist/component/apiKeyMutations.d.ts +29 -0
  91. package/dist/component/apiKeyMutations.d.ts.map +1 -0
  92. package/dist/component/apiKeyMutations.js +149 -0
  93. package/dist/component/apiKeyMutations.js.map +1 -0
  94. package/dist/component/apiKeyQueries.d.ts +37 -0
  95. package/dist/component/apiKeyQueries.d.ts.map +1 -0
  96. package/dist/component/apiKeyQueries.js +127 -0
  97. package/dist/component/apiKeyQueries.js.map +1 -0
  98. package/dist/component/checksum.d.ts +6 -0
  99. package/dist/component/checksum.d.ts.map +1 -0
  100. package/dist/component/checksum.js +14 -0
  101. package/dist/component/checksum.js.map +1 -0
  102. package/dist/component/checksum.test.d.ts +2 -0
  103. package/dist/component/checksum.test.d.ts.map +1 -0
  104. package/dist/component/checksum.test.js +27 -0
  105. package/dist/component/checksum.test.js.map +1 -0
  106. package/dist/component/convex.config.d.ts +3 -0
  107. package/dist/component/convex.config.d.ts.map +1 -0
  108. package/dist/component/convex.config.js +4 -0
  109. package/dist/component/convex.config.js.map +1 -0
  110. package/dist/component/cronActions.d.ts +3 -0
  111. package/dist/component/cronActions.d.ts.map +1 -0
  112. package/dist/component/cronActions.js +38 -0
  113. package/dist/component/cronActions.js.map +1 -0
  114. package/dist/component/cronQueries.d.ts +6 -0
  115. package/dist/component/cronQueries.d.ts.map +1 -0
  116. package/dist/component/cronQueries.js +38 -0
  117. package/dist/component/cronQueries.js.map +1 -0
  118. package/dist/component/crons.d.ts +3 -0
  119. package/dist/component/crons.d.ts.map +1 -0
  120. package/dist/component/crons.js +18 -0
  121. package/dist/component/crons.js.map +1 -0
  122. package/dist/component/format.d.ts +11 -0
  123. package/dist/component/format.d.ts.map +1 -0
  124. package/dist/component/format.js +175 -0
  125. package/dist/component/format.js.map +1 -0
  126. package/dist/component/format.test.d.ts +2 -0
  127. package/dist/component/format.test.d.ts.map +1 -0
  128. package/dist/component/format.test.js +118 -0
  129. package/dist/component/format.test.js.map +1 -0
  130. package/dist/component/mutations.d.ts +158 -0
  131. package/dist/component/mutations.d.ts.map +1 -0
  132. package/dist/component/mutations.js +745 -0
  133. package/dist/component/mutations.js.map +1 -0
  134. package/dist/component/queries.d.ts +94 -0
  135. package/dist/component/queries.d.ts.map +1 -0
  136. package/dist/component/queries.js +574 -0
  137. package/dist/component/queries.js.map +1 -0
  138. package/dist/component/schema.d.ts +278 -0
  139. package/dist/component/schema.d.ts.map +1 -0
  140. package/dist/component/schema.js +161 -0
  141. package/dist/component/schema.js.map +1 -0
  142. package/dist/mcp/server.d.ts +11 -0
  143. package/dist/mcp/server.d.ts.map +1 -0
  144. package/dist/mcp/server.js +571 -0
  145. package/dist/mcp/server.js.map +1 -0
  146. package/dist/shared.d.ts +126 -0
  147. package/dist/shared.d.ts.map +1 -0
  148. package/dist/shared.js +67 -0
  149. package/dist/shared.js.map +1 -0
  150. package/dist/test.d.ts +23 -0
  151. package/dist/test.d.ts.map +1 -0
  152. package/dist/test.js +21 -0
  153. package/dist/test.js.map +1 -0
  154. package/eslint.config.js +15 -0
  155. package/example/convex/convex.config.ts +7 -0
  156. package/example/convex/memory.ts +129 -0
  157. package/llms.md +175 -0
  158. package/llms.txt +126 -0
  159. package/package.json +80 -0
  160. package/prds/API-REFERENCE.md +935 -0
  161. package/prds/SETUP.md +682 -0
  162. package/src/cli/index.ts +254 -0
  163. package/src/cli/parsers/claude-code.ts +80 -0
  164. package/src/cli/parsers/codex.ts +45 -0
  165. package/src/cli/parsers/conductor.ts +47 -0
  166. package/src/cli/parsers/cursor.ts +55 -0
  167. package/src/cli/parsers/index.ts +30 -0
  168. package/src/cli/parsers/opencode.ts +84 -0
  169. package/src/cli/parsers/parsers.test.ts +201 -0
  170. package/src/cli/parsers/pi.ts +47 -0
  171. package/src/cli/parsers/types.ts +26 -0
  172. package/src/cli/parsers/vscode-copilot.ts +78 -0
  173. package/src/cli/parsers/zed.ts +47 -0
  174. package/src/cli/sync.ts +110 -0
  175. package/src/cli/type-extractor.test.ts +241 -0
  176. package/src/cli/type-extractor.ts +331 -0
  177. package/src/client/http.ts +415 -0
  178. package/src/client/index.ts +519 -0
  179. package/src/component/_generated/api.ts +14 -0
  180. package/src/component/_generated/dataModel.ts +20 -0
  181. package/src/component/_generated/server.ts +64 -0
  182. package/src/component/actions.ts +558 -0
  183. package/src/component/apiKeyMutations.ts +175 -0
  184. package/src/component/apiKeyQueries.ts +156 -0
  185. package/src/component/checksum.test.ts +31 -0
  186. package/src/component/checksum.ts +13 -0
  187. package/src/component/convex.config.ts +5 -0
  188. package/src/component/cronActions.ts +52 -0
  189. package/src/component/cronQueries.ts +42 -0
  190. package/src/component/crons.ts +34 -0
  191. package/src/component/format.test.ts +133 -0
  192. package/src/component/format.ts +232 -0
  193. package/src/component/mutations.ts +824 -0
  194. package/src/component/queries.ts +684 -0
  195. package/src/component/schema.ts +207 -0
  196. package/src/mcp/server.ts +695 -0
  197. package/src/shared.ts +251 -0
  198. package/src/test.ts +32 -0
  199. package/tsconfig.json +21 -0
  200. package/vitest.config.ts +8 -0
@@ -0,0 +1,151 @@
1
+ import { describe, it, expect, beforeEach, afterEach } from "vitest";
2
+ import { mkdtemp, mkdir, writeFile, rm } from "node:fs/promises";
3
+ import { join } from "node:path";
4
+ import { tmpdir } from "node:os";
5
+ import { claudeCodeParser } from "./claude-code.js";
6
+ import { cursorParser } from "./cursor.js";
7
+ import { openCodeParser } from "./opencode.js";
8
+ import { codexParser } from "./codex.js";
9
+ import { conductorParser } from "./conductor.js";
10
+ import { zedParser } from "./zed.js";
11
+ import { vscodeCopilotParser } from "./vscode-copilot.js";
12
+ import { piParser } from "./pi.js";
13
+ let tempDir;
14
+ beforeEach(async () => {
15
+ tempDir = await mkdtemp(join(tmpdir(), "agent-memory-test-"));
16
+ });
17
+ afterEach(async () => {
18
+ await rm(tempDir, { recursive: true, force: true });
19
+ });
20
+ describe("claudeCodeParser", () => {
21
+ it("detects .claude directory", async () => {
22
+ await mkdir(join(tempDir, ".claude"));
23
+ expect(await claudeCodeParser.detect(tempDir)).toBe(true);
24
+ });
25
+ it("returns false when no .claude directory", async () => {
26
+ expect(await claudeCodeParser.detect(tempDir)).toBe(false);
27
+ });
28
+ it("parses .claude/rules/*.md files", async () => {
29
+ await mkdir(join(tempDir, ".claude", "rules"), { recursive: true });
30
+ await writeFile(join(tempDir, ".claude", "rules", "api-style.md"), "---\npaths:\n - src/api/**\n---\n\n# API Style\n\nUse camelCase.");
31
+ const memories = await claudeCodeParser.parse(tempDir);
32
+ expect(memories).toHaveLength(1);
33
+ expect(memories[0].title).toBe("api-style");
34
+ expect(memories[0].memoryType).toBe("instruction");
35
+ expect(memories[0].scope).toBe("project");
36
+ expect(memories[0].paths).toEqual(["src/api/**"]);
37
+ expect(memories[0].content).toContain("Use camelCase");
38
+ expect(memories[0].checksum).toBeTruthy();
39
+ });
40
+ it("parses rules without frontmatter", async () => {
41
+ await mkdir(join(tempDir, ".claude", "rules"), { recursive: true });
42
+ await writeFile(join(tempDir, ".claude", "rules", "simple.md"), "Just plain markdown content.");
43
+ const memories = await claudeCodeParser.parse(tempDir);
44
+ expect(memories).toHaveLength(1);
45
+ expect(memories[0].content).toBe("Just plain markdown content.");
46
+ expect(memories[0].paths).toBeUndefined();
47
+ });
48
+ });
49
+ describe("cursorParser", () => {
50
+ it("detects .cursor/rules directory", async () => {
51
+ await mkdir(join(tempDir, ".cursor", "rules"), { recursive: true });
52
+ expect(await cursorParser.detect(tempDir)).toBe(true);
53
+ });
54
+ it("parses .mdc files with YAML frontmatter", async () => {
55
+ await mkdir(join(tempDir, ".cursor", "rules"), { recursive: true });
56
+ await writeFile(join(tempDir, ".cursor", "rules", "testing.mdc"), "---\ndescription: Testing rules\nalwaysApply: true\n---\n\nUse vitest for tests.");
57
+ const memories = await cursorParser.parse(tempDir);
58
+ expect(memories).toHaveLength(1);
59
+ expect(memories[0].title).toBe("testing");
60
+ expect(memories[0].content).toContain("Use vitest");
61
+ expect(memories[0].priority).toBe(0.9); // alwaysApply = high priority
62
+ });
63
+ });
64
+ describe("openCodeParser", () => {
65
+ it("detects AGENTS.md", async () => {
66
+ await writeFile(join(tempDir, "AGENTS.md"), "# Agent Config");
67
+ expect(await openCodeParser.detect(tempDir)).toBe(true);
68
+ });
69
+ it("parses AGENTS.md into sections", async () => {
70
+ await writeFile(join(tempDir, "AGENTS.md"), "## Style Guide\n\nUse TypeScript.\n\n## Testing\n\nRun vitest.");
71
+ const memories = await openCodeParser.parse(tempDir);
72
+ expect(memories.length).toBeGreaterThanOrEqual(1);
73
+ // OpenCode parser uses filename-based titles (slugified)
74
+ const allContent = memories.map((m) => m.content).join("\n");
75
+ expect(allContent).toContain("Use TypeScript");
76
+ expect(allContent).toContain("Run vitest");
77
+ });
78
+ });
79
+ describe("codexParser", () => {
80
+ it("detects AGENTS.md", async () => {
81
+ await writeFile(join(tempDir, "AGENTS.md"), "# Config");
82
+ expect(await codexParser.detect(tempDir)).toBe(true);
83
+ });
84
+ it("parses AGENTS.md and AGENTS.override.md", async () => {
85
+ await writeFile(join(tempDir, "AGENTS.md"), "## Base Rules\n\nBase content.");
86
+ await writeFile(join(tempDir, "AGENTS.override.md"), "## Override Rules\n\nOverride content.");
87
+ const memories = await codexParser.parse(tempDir);
88
+ // Codex parser creates one memory per file, not per section
89
+ expect(memories.length).toBeGreaterThanOrEqual(2);
90
+ const allContent = memories.map((m) => m.content).join("\n");
91
+ expect(allContent).toContain("Base content");
92
+ expect(allContent).toContain("Override content");
93
+ });
94
+ });
95
+ describe("conductorParser", () => {
96
+ it("detects .conductor/rules directory", async () => {
97
+ await mkdir(join(tempDir, ".conductor", "rules"), { recursive: true });
98
+ expect(await conductorParser.detect(tempDir)).toBe(true);
99
+ });
100
+ it("parses .conductor/rules/*.md files", async () => {
101
+ await mkdir(join(tempDir, ".conductor", "rules"), { recursive: true });
102
+ await writeFile(join(tempDir, ".conductor", "rules", "workflow.md"), "# Workflow\n\nAlways review before merge.");
103
+ const memories = await conductorParser.parse(tempDir);
104
+ expect(memories).toHaveLength(1);
105
+ expect(memories[0].title).toBe("workflow");
106
+ expect(memories[0].source).toBe("conductor");
107
+ });
108
+ });
109
+ describe("zedParser", () => {
110
+ it("detects .zed/rules directory", async () => {
111
+ await mkdir(join(tempDir, ".zed", "rules"), { recursive: true });
112
+ expect(await zedParser.detect(tempDir)).toBe(true);
113
+ });
114
+ it("parses .zed/rules/*.md files", async () => {
115
+ await mkdir(join(tempDir, ".zed", "rules"), { recursive: true });
116
+ await writeFile(join(tempDir, ".zed", "rules", "code-style.md"), "Use Rust conventions.");
117
+ const memories = await zedParser.parse(tempDir);
118
+ expect(memories).toHaveLength(1);
119
+ expect(memories[0].title).toBe("code-style");
120
+ expect(memories[0].source).toBe("zed");
121
+ });
122
+ });
123
+ describe("vscodeCopilotParser", () => {
124
+ it("detects .github/copilot-instructions.md", async () => {
125
+ await mkdir(join(tempDir, ".github"), { recursive: true });
126
+ await writeFile(join(tempDir, ".github", "copilot-instructions.md"), "Instructions");
127
+ expect(await vscodeCopilotParser.detect(tempDir)).toBe(true);
128
+ });
129
+ it("parses copilot-instructions.md", async () => {
130
+ await mkdir(join(tempDir, ".github"), { recursive: true });
131
+ await writeFile(join(tempDir, ".github", "copilot-instructions.md"), "## General\n\nBe concise.\n\n## Style\n\nUse TypeScript.");
132
+ const memories = await vscodeCopilotParser.parse(tempDir);
133
+ expect(memories.length).toBeGreaterThanOrEqual(1);
134
+ });
135
+ });
136
+ describe("piParser", () => {
137
+ it("detects .pi/rules directory", async () => {
138
+ await mkdir(join(tempDir, ".pi", "rules"), { recursive: true });
139
+ expect(await piParser.detect(tempDir)).toBe(true);
140
+ });
141
+ it("parses .pi/rules/*.md files", async () => {
142
+ await mkdir(join(tempDir, ".pi", "rules"), { recursive: true });
143
+ await writeFile(join(tempDir, ".pi", "rules", "code-review.md"), "Always add tests.");
144
+ const memories = await piParser.parse(tempDir);
145
+ expect(memories).toHaveLength(1);
146
+ expect(memories[0].title).toBe("code-review");
147
+ expect(memories[0].source).toBe("pi");
148
+ expect(memories[0].priority).toBe(0.8);
149
+ });
150
+ });
151
+ //# sourceMappingURL=parsers.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parsers.test.js","sourceRoot":"","sources":["../../../src/cli/parsers/parsers.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Parser } from "./types.js";
2
+ export declare const piParser: Parser;
3
+ //# sourceMappingURL=pi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pi.d.ts","sourceRoot":"","sources":["../../../src/cli/parsers/pi.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAgB,MAAM,YAAY,CAAC;AAGvD,eAAO,MAAM,QAAQ,EAAE,MAyCtB,CAAC"}
@@ -0,0 +1,43 @@
1
+ import { readdir, readFile, access } from "node:fs/promises";
2
+ import { join, basename } from "node:path";
3
+ import { computeChecksum } from "../../component/checksum.js";
4
+ export const piParser = {
5
+ name: "Pi",
6
+ async detect(dir) {
7
+ try {
8
+ await access(join(dir, ".pi", "rules"));
9
+ return true;
10
+ }
11
+ catch {
12
+ return false;
13
+ }
14
+ },
15
+ async parse(dir) {
16
+ const memories = [];
17
+ const rulesDir = join(dir, ".pi", "rules");
18
+ let files = [];
19
+ try {
20
+ files = await readdir(rulesDir);
21
+ }
22
+ catch {
23
+ return memories;
24
+ }
25
+ for (const file of files) {
26
+ if (!file.endsWith(".md"))
27
+ continue;
28
+ const content = (await readFile(join(rulesDir, file), "utf-8")).trim();
29
+ memories.push({
30
+ title: basename(file, ".md"),
31
+ content,
32
+ memoryType: "instruction",
33
+ scope: "project",
34
+ tags: [],
35
+ priority: 0.8,
36
+ source: "pi",
37
+ checksum: computeChecksum(content),
38
+ });
39
+ }
40
+ return memories;
41
+ },
42
+ };
43
+ //# sourceMappingURL=pi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pi.js","sourceRoot":"","sources":["../../../src/cli/parsers/pi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE3C,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,MAAM,CAAC,MAAM,QAAQ,GAAW;IAC9B,IAAI,EAAE,IAAI;IAEV,KAAK,CAAC,MAAM,CAAC,GAAW;QACtB,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;YACxC,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAAW;QACrB,MAAM,QAAQ,GAAmB,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAE3C,IAAI,KAAK,GAAa,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,KAAK,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,SAAS;YACpC,MAAM,OAAO,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAEvE,QAAQ,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;gBAC5B,OAAO;gBACP,UAAU,EAAE,aAAa;gBACzB,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,EAAE;gBACR,QAAQ,EAAE,GAAG;gBACb,MAAM,EAAE,IAAI;gBACZ,QAAQ,EAAE,eAAe,CAAC,OAAO,CAAC;aACnC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAC"}
@@ -0,0 +1,25 @@
1
+ import type { MemoryType, Scope } from "../../shared.js";
2
+ /**
3
+ * A normalized memory object parsed from a local file.
4
+ * This is the common format all parsers produce.
5
+ */
6
+ export interface ParsedMemory {
7
+ title: string;
8
+ content: string;
9
+ memoryType: MemoryType;
10
+ scope: Scope;
11
+ tags: string[];
12
+ paths?: string[];
13
+ priority?: number;
14
+ source: string;
15
+ checksum: string;
16
+ }
17
+ export interface Parser {
18
+ /** Human-readable name of the tool */
19
+ name: string;
20
+ /** Detect if this tool is present in the given directory */
21
+ detect(dir: string): Promise<boolean>;
22
+ /** Parse all memory files from the given directory */
23
+ parse(dir: string): Promise<ParsedMemory[]>;
24
+ }
25
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/cli/parsers/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAEzD;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,MAAM;IACrB,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,4DAA4D;IAC5D,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACtC,sDAAsD;IACtD,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;CAC7C"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/cli/parsers/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import type { Parser } from "./types.js";
2
+ export declare const vscodeCopilotParser: Parser;
3
+ //# sourceMappingURL=vscode-copilot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vscode-copilot.d.ts","sourceRoot":"","sources":["../../../src/cli/parsers/vscode-copilot.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAgB,MAAM,YAAY,CAAC;AAGvD,eAAO,MAAM,mBAAmB,EAAE,MAwEjC,CAAC"}
@@ -0,0 +1,69 @@
1
+ import { readdir, readFile, access } from "node:fs/promises";
2
+ import { join, basename } from "node:path";
3
+ import { computeChecksum } from "../../component/checksum.js";
4
+ export const vscodeCopilotParser = {
5
+ name: "VS Code Copilot",
6
+ async detect(dir) {
7
+ try {
8
+ await access(join(dir, ".github", "copilot-instructions.md"));
9
+ return true;
10
+ }
11
+ catch {
12
+ try {
13
+ await access(join(dir, ".copilot", "rules"));
14
+ return true;
15
+ }
16
+ catch {
17
+ return false;
18
+ }
19
+ }
20
+ },
21
+ async parse(dir) {
22
+ const memories = [];
23
+ // Parse .github/copilot-instructions.md
24
+ try {
25
+ const content = (await readFile(join(dir, ".github", "copilot-instructions.md"), "utf-8")).trim();
26
+ if (content.length > 0) {
27
+ memories.push({
28
+ title: "copilot-instructions",
29
+ content,
30
+ memoryType: "instruction",
31
+ scope: "project",
32
+ tags: [],
33
+ priority: 0.9,
34
+ source: "vscode-copilot",
35
+ checksum: computeChecksum(content),
36
+ });
37
+ }
38
+ }
39
+ catch {
40
+ // File doesn't exist
41
+ }
42
+ // Parse .copilot/rules/*.md
43
+ const rulesDir = join(dir, ".copilot", "rules");
44
+ let files = [];
45
+ try {
46
+ files = await readdir(rulesDir);
47
+ }
48
+ catch {
49
+ return memories;
50
+ }
51
+ for (const file of files) {
52
+ if (!file.endsWith(".md"))
53
+ continue;
54
+ const content = (await readFile(join(rulesDir, file), "utf-8")).trim();
55
+ memories.push({
56
+ title: basename(file, ".md"),
57
+ content,
58
+ memoryType: "instruction",
59
+ scope: "project",
60
+ tags: [],
61
+ priority: 0.8,
62
+ source: "vscode-copilot",
63
+ checksum: computeChecksum(content),
64
+ });
65
+ }
66
+ return memories;
67
+ },
68
+ };
69
+ //# sourceMappingURL=vscode-copilot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vscode-copilot.js","sourceRoot":"","sources":["../../../src/cli/parsers/vscode-copilot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE3C,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,MAAM,CAAC,MAAM,mBAAmB,GAAW;IACzC,IAAI,EAAE,iBAAiB;IAEvB,KAAK,CAAC,MAAM,CAAC,GAAW;QACtB,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,yBAAyB,CAAC,CAAC,CAAC;YAC9D,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;gBAC7C,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAAW;QACrB,MAAM,QAAQ,GAAmB,EAAE,CAAC;QAEpC,wCAAwC;QACxC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,CACd,MAAM,QAAQ,CACZ,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,yBAAyB,CAAC,EAC/C,OAAO,CACR,CACF,CAAC,IAAI,EAAE,CAAC;YAET,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,QAAQ,CAAC,IAAI,CAAC;oBACZ,KAAK,EAAE,sBAAsB;oBAC7B,OAAO;oBACP,UAAU,EAAE,aAAa;oBACzB,KAAK,EAAE,SAAS;oBAChB,IAAI,EAAE,EAAE;oBACR,QAAQ,EAAE,GAAG;oBACb,MAAM,EAAE,gBAAgB;oBACxB,QAAQ,EAAE,eAAe,CAAC,OAAO,CAAC;iBACnC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,qBAAqB;QACvB,CAAC;QAED,4BAA4B;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QAChD,IAAI,KAAK,GAAa,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,KAAK,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,SAAS;YACpC,MAAM,OAAO,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAEvE,QAAQ,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;gBAC5B,OAAO;gBACP,UAAU,EAAE,aAAa;gBACzB,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,EAAE;gBACR,QAAQ,EAAE,GAAG;gBACb,MAAM,EAAE,gBAAgB;gBACxB,QAAQ,EAAE,eAAe,CAAC,OAAO,CAAC;aACnC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Parser } from "./types.js";
2
+ export declare const zedParser: Parser;
3
+ //# sourceMappingURL=zed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zed.d.ts","sourceRoot":"","sources":["../../../src/cli/parsers/zed.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAgB,MAAM,YAAY,CAAC;AAGvD,eAAO,MAAM,SAAS,EAAE,MAyCvB,CAAC"}
@@ -0,0 +1,43 @@
1
+ import { readdir, readFile, access } from "node:fs/promises";
2
+ import { join, basename } from "node:path";
3
+ import { computeChecksum } from "../../component/checksum.js";
4
+ export const zedParser = {
5
+ name: "Zed",
6
+ async detect(dir) {
7
+ try {
8
+ await access(join(dir, ".zed", "rules"));
9
+ return true;
10
+ }
11
+ catch {
12
+ return false;
13
+ }
14
+ },
15
+ async parse(dir) {
16
+ const memories = [];
17
+ const rulesDir = join(dir, ".zed", "rules");
18
+ let files = [];
19
+ try {
20
+ files = await readdir(rulesDir);
21
+ }
22
+ catch {
23
+ return memories;
24
+ }
25
+ for (const file of files) {
26
+ if (!file.endsWith(".md"))
27
+ continue;
28
+ const content = (await readFile(join(rulesDir, file), "utf-8")).trim();
29
+ memories.push({
30
+ title: basename(file, ".md"),
31
+ content,
32
+ memoryType: "instruction",
33
+ scope: "project",
34
+ tags: [],
35
+ priority: 0.8,
36
+ source: "zed",
37
+ checksum: computeChecksum(content),
38
+ });
39
+ }
40
+ return memories;
41
+ },
42
+ };
43
+ //# sourceMappingURL=zed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zed.js","sourceRoot":"","sources":["../../../src/cli/parsers/zed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE3C,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,MAAM,CAAC,MAAM,SAAS,GAAW;IAC/B,IAAI,EAAE,KAAK;IAEX,KAAK,CAAC,MAAM,CAAC,GAAW;QACtB,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;YACzC,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAAW;QACrB,MAAM,QAAQ,GAAmB,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAE5C,IAAI,KAAK,GAAa,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,KAAK,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,SAAS;YACpC,MAAM,OAAO,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAEvE,QAAQ,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;gBAC5B,OAAO;gBACP,UAAU,EAAE,aAAa;gBACzB,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,EAAE;gBACR,QAAQ,EAAE,GAAG;gBACb,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,eAAe,CAAC,OAAO,CAAC;aACnC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { ToolFormat } from "../shared.js";
2
+ export interface SyncConfig {
3
+ convexUrl: string;
4
+ projectId: string;
5
+ userId?: string;
6
+ format?: ToolFormat;
7
+ dir: string;
8
+ }
9
+ /**
10
+ * Push local memory files to Convex.
11
+ */
12
+ export declare function push(config: SyncConfig): Promise<void>;
13
+ /**
14
+ * Pull memories from Convex and write to local files.
15
+ */
16
+ export declare function pull(config: SyncConfig): Promise<void>;
17
+ /**
18
+ * Detect which tools are present in the directory.
19
+ */
20
+ export declare function detectTools(dir: string): Promise<string[]>;
21
+ //# sourceMappingURL=sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/cli/sync.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,wBAAsB,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA8C5D;AAED;;GAEG;AACH,wBAAsB,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA4B5D;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAQhE"}
@@ -0,0 +1,78 @@
1
+ import { ConvexHttpClient } from "convex/browser";
2
+ import { writeFile, mkdir } from "node:fs/promises";
3
+ import { dirname, join } from "node:path";
4
+ import { ALL_PARSERS } from "./parsers/index.js";
5
+ /**
6
+ * Push local memory files to Convex.
7
+ */
8
+ export async function push(config) {
9
+ const client = new ConvexHttpClient(config.convexUrl);
10
+ const parsersToUse = config.format
11
+ ? { [config.format]: ALL_PARSERS[config.format] }
12
+ : ALL_PARSERS;
13
+ let totalCreated = 0;
14
+ let totalUpdated = 0;
15
+ let totalUnchanged = 0;
16
+ for (const [name, parser] of Object.entries(parsersToUse)) {
17
+ if (!parser)
18
+ continue;
19
+ const detected = await parser.detect(config.dir);
20
+ if (!detected)
21
+ continue;
22
+ console.log(` Parsing ${parser.name} files...`);
23
+ const memories = await parser.parse(config.dir);
24
+ if (memories.length === 0) {
25
+ console.log(` No memories found for ${parser.name}`);
26
+ continue;
27
+ }
28
+ // Use the component's importFromLocal mutation
29
+ // The API path depends on how the component is mounted
30
+ const result = await client.mutation("agentMemory/mutations:importFromLocal", {
31
+ projectId: config.projectId,
32
+ userId: config.userId,
33
+ memories,
34
+ });
35
+ totalCreated += result.created;
36
+ totalUpdated += result.updated;
37
+ totalUnchanged += result.unchanged;
38
+ console.log(` ${parser.name}: ${result.created} created, ${result.updated} updated, ${result.unchanged} unchanged`);
39
+ }
40
+ console.log(`\nTotal: ${totalCreated} created, ${totalUpdated} updated, ${totalUnchanged} unchanged`);
41
+ }
42
+ /**
43
+ * Pull memories from Convex and write to local files.
44
+ */
45
+ export async function pull(config) {
46
+ const client = new ConvexHttpClient(config.convexUrl);
47
+ const format = config.format ?? "raw";
48
+ console.log(` Pulling memories as ${format} format...`);
49
+ const files = await client.query("agentMemory/queries:exportForTool", {
50
+ projectId: config.projectId,
51
+ format,
52
+ userId: config.userId,
53
+ });
54
+ if (files.length === 0) {
55
+ console.log(" No memories to pull");
56
+ return;
57
+ }
58
+ for (const file of files) {
59
+ const fullPath = join(config.dir, file.path);
60
+ await mkdir(dirname(fullPath), { recursive: true });
61
+ await writeFile(fullPath, file.content, "utf-8");
62
+ console.log(` Wrote ${file.path}`);
63
+ }
64
+ console.log(`\nPulled ${files.length} files`);
65
+ }
66
+ /**
67
+ * Detect which tools are present in the directory.
68
+ */
69
+ export async function detectTools(dir) {
70
+ const detected = [];
71
+ for (const [name, parser] of Object.entries(ALL_PARSERS)) {
72
+ if (await parser.detect(dir)) {
73
+ detected.push(name);
74
+ }
75
+ }
76
+ return detected;
77
+ }
78
+ //# sourceMappingURL=sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/cli/sync.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { ParsedMemory } from "./parsers/types.js";
2
+ export interface IngestTypesOptions {
3
+ /** Glob pattern for TypeScript files, e.g. "src/models.ts" */
4
+ globPattern: string;
5
+ /** Working directory for glob resolution */
6
+ cwd?: string;
7
+ /** Additional tags to attach to generated memories */
8
+ tags?: string[];
9
+ /** Priority for generated memories (0-1, default 0.6) */
10
+ priority?: number;
11
+ /** Exclude patterns (defaults to node_modules, dist, _generated) */
12
+ exclude?: string[];
13
+ }
14
+ export interface IngestTypesResult {
15
+ memories: ParsedMemory[];
16
+ filesProcessed: number;
17
+ }
18
+ /**
19
+ * Extract TypeScript type definitions from files matching a glob pattern
20
+ * and convert them into ParsedMemory objects suitable for agent-memory.
21
+ *
22
+ * Uses `types-not-docs` under the hood to generate markdown from types.
23
+ */
24
+ export declare function extractTypeMemories(opts: IngestTypesOptions): Promise<IngestTypesResult>;
25
+ //# sourceMappingURL=type-extractor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-extractor.d.ts","sourceRoot":"","sources":["../../src/cli/type-extractor.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAKvD,MAAM,WAAW,kBAAkB;IACjC,8DAA8D;IAC9D,WAAW,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,yDAAyD;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;CACxB;AAID;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,kBAAkB,GACvB,OAAO,CAAC,iBAAiB,CAAC,CA+C5B"}