@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
package/llms.txt ADDED
@@ -0,0 +1,126 @@
1
+ # @waynesutton/agent-memory
2
+
3
+ > A Convex Component for persistent, cloud-synced agent memory. Markdown-first memory backend for AI coding agents across CLIs and IDEs.
4
+
5
+ ## What It Does
6
+
7
+ AI coding agents (Claude Code, Cursor, OpenCode, Codex, Conductor, Zed, VS Code Copilot, Pi) use local file-based memory (CLAUDE.md, .cursor/rules, AGENTS.md). These are siloed to one machine with no shared backend, no cross-tool sync, and no queryable search.
8
+
9
+ agent-memory creates a cloud-synced, markdown-first memory backend as a Convex Component with full-text search, vector/semantic search, intelligent ingest, feedback loops, memory relations, relevance decay, a read-only HTTP API, and an MCP server with 14 tools.
10
+
11
+ ## Installation
12
+
13
+ npm install @waynesutton/agent-memory
14
+
15
+ Peer dependencies: convex (>=1.17.0), convex-helpers (>=0.1.67)
16
+
17
+ ## Quick Start
18
+
19
+ 1. Register the component in convex/convex.config.ts:
20
+
21
+ import { defineApp } from "convex/server";
22
+ import agentMemory from "@waynesutton/agent-memory/convex.config.js";
23
+ const app = defineApp();
24
+ app.use(agentMemory);
25
+ export default app;
26
+
27
+ 2. Create wrapper functions in convex/memory.ts:
28
+
29
+ import { AgentMemory } from "@waynesutton/agent-memory";
30
+ import { components } from "./_generated/api.js";
31
+ const memory = new AgentMemory(components.agentMemory, { projectId: "my-project" });
32
+
33
+ 3. Deploy: npx convex dev
34
+
35
+ ## Package Exports
36
+
37
+ - @waynesutton/agent-memory — AgentMemory class + types
38
+ - @waynesutton/agent-memory/http — MemoryHttpApi class for read-only HTTP API
39
+ - @waynesutton/agent-memory/convex.config.js — Convex component config
40
+ - @waynesutton/agent-memory/cli — CLI entry point
41
+ - @waynesutton/agent-memory/mcp — MCP server entry point
42
+
43
+ ## AgentMemoryConfig
44
+
45
+ - projectId (string, required) — unique project identifier
46
+ - defaultScope ("project" | "user" | "org") — default "project"
47
+ - userId (string) — for user-scoped memories
48
+ - agentId (string) — agent identifier
49
+ - sessionId (string) — session/conversation ID
50
+ - embeddingApiKey (string) — enables vector search
51
+ - llmApiKey (string) — enables intelligent ingest
52
+ - llmModel (string) — default "gpt-4.1-nano"
53
+
54
+ ## Key Methods
55
+
56
+ Read (query context):
57
+ - list(ctx, opts?) — list memories with filters (type, scope, agent, session, source, tags, date range)
58
+ - get(ctx, memoryId) — get single memory
59
+ - search(ctx, query, opts?) — full-text search
60
+ - getContextBundle(ctx, opts?) — 3-tier progressive context (pinned/relevant/available)
61
+ - exportForTool(ctx, format, opts?) — export as tool-native files
62
+ - history(ctx, memoryId) — change audit trail
63
+ - getFeedback(ctx, memoryId) — feedback entries
64
+ - getRelations(ctx, memoryId) — graph connections
65
+
66
+ Write (mutation context):
67
+ - remember(ctx, memory) — create memory (auto-records history)
68
+ - update(ctx, memoryId, updates) — partial update
69
+ - forget(ctx, memoryId) — archive (soft delete)
70
+ - restore(ctx, memoryId) — un-archive
71
+ - batchArchive(ctx, ids) — archive multiple
72
+ - addFeedback(ctx, memoryId, sentiment, opts?) — rate memory
73
+ - addRelation(ctx, from, to, relationship) — create graph edge
74
+ - recordAccess(ctx, ids) — track access for relevance decay
75
+
76
+ Action context:
77
+ - embed(ctx, memoryId) — generate vector embedding
78
+ - semanticSearch(ctx, query) — vector similarity search
79
+ - ingest(ctx, content, opts?) — intelligent fact extraction + dedup via LLM
80
+
81
+ API key management:
82
+ - createApiKey(ctx, opts) — create bearer token for HTTP API
83
+ - revokeApiKey(ctx, keyHash) — revoke a key
84
+ - listApiKeys(ctx) — list non-revoked keys
85
+
86
+ ## Memory Types
87
+
88
+ - instruction — rules and conventions (maps to .claude/rules/, .cursor/rules/, AGENTS.md)
89
+ - learning — auto-discovered patterns
90
+ - reference — architecture docs, API specs
91
+ - feedback — corrections, preferences
92
+ - journal — session logs
93
+
94
+ ## Schema (9 tables)
95
+
96
+ memories, embeddings, projects, syncLog, memoryHistory, memoryFeedback, memoryRelations, apiKeys, rateLimitTokens
97
+
98
+ ## MCP Server (14 tools)
99
+
100
+ memory_remember, memory_recall, memory_semantic_recall, memory_list, memory_context, memory_forget, memory_restore, memory_update, memory_history, memory_feedback, memory_relate, memory_relations, memory_batch_archive, memory_ingest
101
+
102
+ ## HTTP API Endpoints
103
+
104
+ All require Authorization: Bearer am_<key>
105
+
106
+ GET /list, /get?id=, /search?q=, /context, /export?format=, /history?id=, /relations?id=
107
+
108
+ ## CLI Commands
109
+
110
+ agent-memory init, push, pull, list, search, mcp
111
+
112
+ ## Supported Tool Formats
113
+
114
+ claude-code, cursor, opencode, codex, conductor, zed, vscode-copilot, pi, raw
115
+
116
+ ## Cron Jobs
117
+
118
+ - relevance-decay — daily 3 AM UTC, reduces priority of stale memories
119
+ - cleanup-old-history — weekly Sunday 4 AM UTC, removes entries >90 days
120
+ - cleanup-rate-limit-tokens — hourly, removes expired rate limit windows
121
+
122
+ ## Documentation
123
+
124
+ - Full API reference: prds/API-REFERENCE.md
125
+ - Setup guide: prds/SETUP.md
126
+ - README: README.md
package/package.json ADDED
@@ -0,0 +1,80 @@
1
+ {
2
+ "name": "@waynesutton/agent-memory",
3
+ "version": "0.0.1-alpha.1",
4
+ "description": "A Convex Component for persistent, cloud-synced agent memory. Markdown-first memory backend for AI coding agents across CLIs and IDEs.",
5
+ "type": "module",
6
+ "main": "./dist/client/index.js",
7
+ "types": "./dist/client/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/client/index.d.ts",
11
+ "default": "./dist/client/index.js"
12
+ },
13
+ "./convex.config.js": "./dist/component/convex.config.js",
14
+ "./_generated/component.js": "./dist/component/_generated/component.js",
15
+ "./test": "./src/test.ts",
16
+ "./cli": "./dist/cli/index.js",
17
+ "./mcp": "./dist/mcp/server.js",
18
+ "./http": {
19
+ "types": "./dist/client/http.d.ts",
20
+ "default": "./dist/client/http.js"
21
+ }
22
+ },
23
+ "bin": {
24
+ "agent-memory": "./dist/cli/index.js"
25
+ },
26
+ "scripts": {
27
+ "build": "tsc",
28
+ "dev": "tsc --watch",
29
+ "lint": "eslint src/",
30
+ "test": "vitest run",
31
+ "test:watch": "vitest",
32
+ "codegen": "convex codegen --component-dir ./src/component"
33
+ },
34
+ "keywords": [
35
+ "convex",
36
+ "component",
37
+ "agent",
38
+ "memory",
39
+ "ai",
40
+ "markdown",
41
+ "mcp",
42
+ "claude-code",
43
+ "cursor",
44
+ "opencode",
45
+ "codex"
46
+ ],
47
+ "license": "Apache-2.0",
48
+ "repository": {
49
+ "type": "git",
50
+ "url": "https://github.com/waynesutton/agent-memory.git"
51
+ },
52
+ "homepage": "https://github.com/waynesutton/agent-memory#readme",
53
+ "bugs": {
54
+ "url": "https://github.com/waynesutton/agent-memory/issues"
55
+ },
56
+ "publishConfig": {
57
+ "access": "public"
58
+ },
59
+ "peerDependencies": {
60
+ "convex": ">=1.17.0",
61
+ "convex-helpers": ">=0.1.67"
62
+ },
63
+ "devDependencies": {
64
+ "convex": "^1.17.0",
65
+ "convex-helpers": "^0.1.67",
66
+ "convex-test": "^0.0.34",
67
+ "typescript": "^5.5.0",
68
+ "vitest": "^3.0.0"
69
+ },
70
+ "dependencies": {
71
+ "@modelcontextprotocol/sdk": "^1.0.0",
72
+ "chokidar": "^4.0.0",
73
+ "commander": "^13.0.0",
74
+ "fast-glob": "^3.3.3",
75
+ "gray-matter": "^4.0.3"
76
+ },
77
+ "optionalDependencies": {
78
+ "types-not-docs": "^1.0.0"
79
+ }
80
+ }