@agentmemory/agentmemory 0.7.8 → 0.7.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -3,8 +3,8 @@
3
3
  </p>
4
4
 
5
5
  <p align="center">
6
- <strong>Persistent memory for AI coding agents.</strong><br/>
7
- Powered by <a href="https://iii.dev">iii-engine</a>.
6
+ <strong>Your coding agent remembers everything. No more re-explaining.</strong><br/>
7
+ Persistent memory for Claude Code, Cursor, Gemini CLI, OpenCode, and any MCP client.
8
8
  </p>
9
9
 
10
10
  <p align="center">
@@ -26,9 +26,11 @@
26
26
 
27
27
  ---
28
28
 
29
- Every AI coding agent has the same blind spot. Session ends, memory vanishes. You re-explain architecture. You re-discover bugs. You re-teach preferences. Built-in memory files like CLAUDE.md and .cursorrules are 200-line sticky notes that overflow and go stale. agentmemory replaces that with a searchable, versioned, cross-agent database 43 MCP tools, triple-stream retrieval (BM25 + vector + knowledge graph), 4-tier memory consolidation, provenance-tracked citations, and cascading staleness so retired facts never pollute your context again. One instance serves Claude Code, Cursor, Codex, Windsurf, and any MCP client simultaneously. 646 tests. Zero external DB dependencies.
29
+ You explain the same architecture every session. You re-discover the same bugs. You re-teach the same preferences. Built-in memory (CLAUDE.md, .cursorrules) caps out at 200 lines and goes stale. agentmemory fixes this it silently captures what your agent does, compresses it into searchable memory, and injects the right context when the next session starts. One command. Works across agents.
30
30
 
31
- The result is measurable. On LongMemEval-S (ICLR 2025, 500 questions), agentmemory achieves **95.2% Recall@5** and **98.6% Recall@10** with hybrid BM25+vector search — within 1.4pp of raw vector baselines while using 92% fewer tokens than dumping everything into context. When an agent searches "database performance optimization," it finds the N+1 fix you made three weeks ago something keyword grep literally cannot do. Memories version automatically, supersede each other, propagate staleness to related graph nodes, and sync across agent instances via P2P mesh. Your agents stop repeating mistakes. Your context stays clean. Your sessions start fast.
31
+ **What changes:** Session 1 you set up JWT auth. Session 2 you ask for rate limiting the agent already knows your auth uses jose middleware in `src/middleware/auth.ts`, your tests cover token validation, and you chose jose over jsonwebtoken for Edge compatibility. No re-explaining. No copy-pasting. The agent just *knows*.
32
+
33
+ **95.2% retrieval accuracy** on [LongMemEval](https://arxiv.org/abs/2410.10813) (ICLR 2025). 43 MCP tools. 12 hooks. Real-time viewer. Works with Claude Code, Cursor, Gemini CLI, OpenCode, and any MCP client. 646 tests. Zero external DB dependencies.
32
34
 
33
35
  ```bash
34
36
  npx @agentmemory/agentmemory # installs iii-engine if missing, starts everything
@@ -38,7 +40,7 @@ npx @agentmemory/agentmemory # installs iii-engine if missing, starts everythi
38
40
 
39
41
  ## Why agentmemory
40
42
 
41
- AI coding agents forget everything between sessions. You explain the same architecture, re-discover the same patterns, and re-learn the same preferences every time. agentmemory fixes that.
43
+ Every coding agent forgets everything when the session ends. You waste the first 5 minutes of every session re-explaining your stack, your conventions, your recent decisions. agentmemory runs in the background and eliminates that entirely.
42
44
 
43
45
  ```
44
46
  Session 1: "Add auth to the API"
@@ -47,15 +49,14 @@ Session 1: "Add auth to the API"
47
49
  Session ends -> observations compressed into structured memory
48
50
 
49
51
  Session 2: "Now add rate limiting"
50
- agentmemory injects context from Session 1:
52
+ Agent already knows:
51
53
  - Auth uses JWT middleware in src/middleware/auth.ts
52
54
  - Tests in test/auth.test.ts cover token validation
53
- - Decision: chose jose over jsonwebtoken for Edge compatibility
54
- Agent starts with full project awareness
55
+ - You chose jose over jsonwebtoken for Edge compatibility
56
+ - The rate limit discussion from last week's debugging session
57
+ Zero re-explaining. Starts working immediately.
55
58
  ```
56
59
 
57
- No manual notes. No copy-pasting. The agent just *knows*.
58
-
59
60
  ### What it gives you
60
61
 
61
62
  | Capability | What it does |
package/dist/cli.mjs CHANGED
@@ -160,12 +160,12 @@ async function main() {
160
160
  p.intro("agentmemory");
161
161
  if (skipEngine) {
162
162
  p.log.info("Skipping engine check (--no-engine)");
163
- await import("./src-Ct05bSXw.mjs");
163
+ await import("./src-DNbB7fd7.mjs");
164
164
  return;
165
165
  }
166
166
  if (await isEngineRunning()) {
167
167
  p.log.success("iii-engine is running");
168
- await import("./src-Ct05bSXw.mjs");
168
+ await import("./src-DNbB7fd7.mjs");
169
169
  return;
170
170
  }
171
171
  if (!await startEngine()) {
@@ -193,7 +193,7 @@ async function main() {
193
193
  process.exit(1);
194
194
  }
195
195
  s.stop("iii-engine is ready");
196
- await import("./src-Ct05bSXw.mjs");
196
+ await import("./src-DNbB7fd7.mjs");
197
197
  }
198
198
  main().catch((err) => {
199
199
  p.log.error(err instanceof Error ? err.message : String(err));
package/dist/index.mjs CHANGED
@@ -3805,7 +3805,7 @@ function registerAutoForgetFunction(sdk, kv) {
3805
3805
 
3806
3806
  //#endregion
3807
3807
  //#region src/version.ts
3808
- const VERSION = "0.7.8";
3808
+ const VERSION = "0.7.9";
3809
3809
 
3810
3810
  //#endregion
3811
3811
  //#region src/functions/export-import.ts
@@ -3910,7 +3910,7 @@ function registerExportImportFunction(sdk, kv) {
3910
3910
  "0.7.5",
3911
3911
  "0.7.6",
3912
3912
  "0.7.7",
3913
- "0.7.8"
3913
+ "0.7.9"
3914
3914
  ]).has(importData.version)) return {
3915
3915
  success: false,
3916
3916
  error: `Unsupported export version: ${importData.version}`