hippo-memory 0.8.0 → 0.9.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.
- package/README.md +99 -13
- package/dist/cli.d.ts +5 -2
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +589 -209
- package/dist/cli.js.map +1 -1
- package/dist/consolidate.d.ts.map +1 -1
- package/dist/consolidate.js +12 -5
- package/dist/consolidate.js.map +1 -1
- package/dist/dashboard.d.ts +8 -0
- package/dist/dashboard.d.ts.map +1 -0
- package/dist/dashboard.js +306 -0
- package/dist/dashboard.js.map +1 -0
- package/dist/db.d.ts.map +1 -1
- package/dist/db.js +149 -100
- package/dist/db.js.map +1 -1
- package/dist/handoff.d.ts +29 -0
- package/dist/handoff.d.ts.map +1 -0
- package/dist/handoff.js +30 -0
- package/dist/handoff.js.map +1 -0
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/mcp/server.js +78 -2
- package/dist/mcp/server.js.map +1 -1
- package/dist/search.d.ts +19 -0
- package/dist/search.d.ts.map +1 -1
- package/dist/search.js +35 -1
- package/dist/search.js.map +1 -1
- package/dist/store.d.ts +18 -0
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +209 -99
- package/dist/store.js.map +1 -1
- package/dist/working-memory.d.ts +59 -0
- package/dist/working-memory.d.ts.map +1 -0
- package/dist/working-memory.js +149 -0
- package/dist/working-memory.js.map +1 -0
- package/extensions/openclaw-plugin/README.md +6 -2
- package/extensions/openclaw-plugin/index.ts +569 -370
- package/extensions/openclaw-plugin/openclaw.plugin.json +1 -1
- package/extensions/openclaw-plugin/package.json +1 -1
- package/openclaw.plugin.json +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -43,13 +43,25 @@ hippo recall "data pipeline issues" --budget 2000
|
|
|
43
43
|
|
|
44
44
|
That's it. You have a memory system.
|
|
45
45
|
|
|
46
|
-
### What's new in
|
|
47
|
-
|
|
48
|
-
- **
|
|
49
|
-
- **
|
|
50
|
-
- **Session
|
|
51
|
-
- **
|
|
52
|
-
-
|
|
46
|
+
### What's new in v0.9.0
|
|
47
|
+
|
|
48
|
+
- **Working memory layer** (`hippo wm push/read/clear/flush`). Bounded buffer (max 20 per scope) with importance-based eviction. Current-state notes live separately from long-term memory.
|
|
49
|
+
- **Session handoffs** (`hippo handoff create/latest/show`). Persist session summaries, next actions, and artifacts so successor sessions can resume without transcript archaeology.
|
|
50
|
+
- **Session lifecycle** with explicit start/end events, fallback session IDs, and `hippo session resume` for continuity.
|
|
51
|
+
- **Explainable recall** (`hippo recall --why`). See which terms matched, whether BM25 or embedding contributed, and the source bucket (layer, confidence, local/global).
|
|
52
|
+
- **`hippo current show`** for compact current-state display (active task + recent session events), ready for agent injection.
|
|
53
|
+
- **SQLite lock hardening**: `busy_timeout=5000`, `synchronous=NORMAL`, `wal_autocheckpoint=100`. Concurrent plugin calls no longer hit `SQLITE_BUSY`.
|
|
54
|
+
- **Consolidation batching**: all writes/deletes happen in a single transaction instead of N open/close cycles.
|
|
55
|
+
- **`--limit` flag** on `hippo recall` and `hippo context` to cap result count independently of token budget.
|
|
56
|
+
- **Plugin injection dedup guard** prevents double context injection on reconnect.
|
|
57
|
+
|
|
58
|
+
### What's new in v0.8.0
|
|
59
|
+
|
|
60
|
+
- **Hybrid search** blends BM25 keywords with cosine embedding similarity. Install `@xenova/transformers`, run `hippo embed`, recall quality jumps. Falls back to BM25 otherwise.
|
|
61
|
+
- **Schema acceleration** auto-computes how well new memories fit existing patterns. Familiar memories consolidate faster; novel ones decay faster if unused.
|
|
62
|
+
- **Multi-agent shared memory** with `hippo share`, `hippo peers`, and transfer scoring. Universal lessons travel between projects; project-specific config stays local.
|
|
63
|
+
- **Conflict resolution** via `hippo resolve <id> --keep <mem_id>`. Closes the detect-inspect-resolve loop.
|
|
64
|
+
- **Agent eval benchmark** validates the learning hypothesis: hippo agents drop from 78% trap rate to 14% over a 50-task sequence.
|
|
53
65
|
|
|
54
66
|
### Zero-config agent integration
|
|
55
67
|
|
|
@@ -150,6 +162,50 @@ hippo context --auto --budget 1500
|
|
|
150
162
|
|
|
151
163
|
Hippo mirrors the latest trail to `.hippo/buffer/recent-session.md` so you can inspect the short-term thread without opening SQLite.
|
|
152
164
|
|
|
165
|
+
### Session handoffs
|
|
166
|
+
|
|
167
|
+
When you're done for the day (or switching to another agent), create a handoff so the next session knows exactly where to pick up:
|
|
168
|
+
|
|
169
|
+
```bash
|
|
170
|
+
hippo handoff create \
|
|
171
|
+
--summary "Finished schema migration, tests green" \
|
|
172
|
+
--next "Wire handoff injection into context output" \
|
|
173
|
+
--session sess_20260403 \
|
|
174
|
+
--artifact src/db.ts
|
|
175
|
+
|
|
176
|
+
hippo handoff latest # show the most recent handoff
|
|
177
|
+
hippo handoff show 3 # show a specific handoff by ID
|
|
178
|
+
hippo session resume # re-inject latest handoff as context
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
### Working memory
|
|
182
|
+
|
|
183
|
+
Working memory is a bounded scratchpad for current-state notes. It's separate from long-term memory and gets cleared between sessions.
|
|
184
|
+
|
|
185
|
+
```bash
|
|
186
|
+
hippo wm push --scope repo \
|
|
187
|
+
--content "Investigating flaky test in store.test.ts, line 42" \
|
|
188
|
+
--importance 0.9
|
|
189
|
+
|
|
190
|
+
hippo wm read --scope repo # show current working notes
|
|
191
|
+
hippo wm clear --scope repo # wipe the scratchpad
|
|
192
|
+
hippo wm flush --scope repo # flush on session end
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
The buffer holds a maximum of 20 entries per scope. When full, the lowest-importance entry is evicted.
|
|
196
|
+
|
|
197
|
+
### Explainable recall
|
|
198
|
+
|
|
199
|
+
See why a memory was returned:
|
|
200
|
+
|
|
201
|
+
```bash
|
|
202
|
+
hippo recall "data pipeline" --why --limit 5
|
|
203
|
+
|
|
204
|
+
# --- mem_a1b2c3 [episodic] [observed] [local] score=0.847
|
|
205
|
+
# BM25: matched [data, pipeline]; cosine: 0.82
|
|
206
|
+
# ...memory content...
|
|
207
|
+
```
|
|
208
|
+
|
|
153
209
|
---
|
|
154
210
|
|
|
155
211
|
## How It Works
|
|
@@ -401,9 +457,12 @@ hippo watch "npm run build"
|
|
|
401
457
|
| `hippo remember "<text>" --global` | Store in global `~/.hippo/` store |
|
|
402
458
|
| `hippo recall "<query>"` | Retrieve relevant memories (local + global) |
|
|
403
459
|
| `hippo recall "<query>" --budget <n>` | Recall within token limit (default: 4000) |
|
|
460
|
+
| `hippo recall "<query>" --limit <n>` | Cap result count |
|
|
461
|
+
| `hippo recall "<query>" --why` | Show match reasons and source buckets |
|
|
404
462
|
| `hippo recall "<query>" --json` | Output as JSON |
|
|
405
463
|
| `hippo context --auto` | Smart context injection (auto-detects task from git) |
|
|
406
464
|
| `hippo context "<query>" --budget <n>` | Context injection with explicit query (default: 1500) |
|
|
465
|
+
| `hippo context --limit <n>` | Cap memory count in context |
|
|
407
466
|
| `hippo context --budget 0` | Skip entirely (zero token cost) |
|
|
408
467
|
| `hippo context --framing <mode>` | Framing: observe (default), suggest, assert |
|
|
409
468
|
| `hippo context --format <fmt>` | Output format: markdown (default) or json |
|
|
@@ -431,11 +490,33 @@ hippo watch "npm run build"
|
|
|
431
490
|
| `hippo learn --git` | Scan recent git commits for lessons |
|
|
432
491
|
| `hippo learn --git --days <n>` | Scan N days back (default: 7) |
|
|
433
492
|
| `hippo learn --git --repos <paths>` | Scan multiple repos (comma-separated) |
|
|
493
|
+
| `hippo conflicts` | List detected open memory conflicts |
|
|
494
|
+
| `hippo conflicts --json` | Output conflicts as JSON |
|
|
495
|
+
| `hippo resolve <id>` | Show both conflicting memories for comparison |
|
|
496
|
+
| `hippo resolve <id> --keep <mem_id>` | Resolve: keep winner, weaken loser |
|
|
497
|
+
| `hippo resolve <id> --keep <mem_id> --forget` | Resolve: keep winner, delete loser |
|
|
434
498
|
| `hippo promote <id>` | Copy a local memory to the global store |
|
|
499
|
+
| `hippo share <id>` | Share with attribution + transfer scoring |
|
|
500
|
+
| `hippo share <id> --force` | Share even if transfer score is low |
|
|
501
|
+
| `hippo share --auto` | Auto-share all high-scoring memories |
|
|
502
|
+
| `hippo share --auto --dry-run` | Preview what would be shared |
|
|
503
|
+
| `hippo peers` | List projects contributing to global store |
|
|
435
504
|
| `hippo sync` | Pull global memories into local project |
|
|
436
505
|
| `hippo hook list` | Show available framework hooks |
|
|
437
506
|
| `hippo hook install <target>` | Install hook (claude-code, codex, cursor, openclaw) |
|
|
438
507
|
| `hippo hook uninstall <target>` | Remove hook |
|
|
508
|
+
| `hippo handoff create --summary "..."` | Create a session handoff |
|
|
509
|
+
| `hippo handoff latest` | Show the most recent handoff |
|
|
510
|
+
| `hippo handoff show <id>` | Show a specific handoff by ID |
|
|
511
|
+
| `hippo session latest` | Show latest task snapshot + events |
|
|
512
|
+
| `hippo session resume` | Re-inject latest handoff as context |
|
|
513
|
+
| `hippo current show` | Compact current state (task + session events) |
|
|
514
|
+
| `hippo wm push --scope <s> --content "..."` | Push to working memory |
|
|
515
|
+
| `hippo wm read --scope <s>` | Read working memory entries |
|
|
516
|
+
| `hippo wm clear --scope <s>` | Clear working memory |
|
|
517
|
+
| `hippo wm flush --scope <s>` | Flush working memory (session end) |
|
|
518
|
+
| `hippo dashboard` | Open web dashboard at localhost:3333 |
|
|
519
|
+
| `hippo dashboard --port <n>` | Use custom port |
|
|
439
520
|
| `hippo mcp` | Start MCP server (stdio transport) |
|
|
440
521
|
|
|
441
522
|
---
|
|
@@ -509,7 +590,7 @@ Add to your MCP config (e.g. `.cursor/mcp.json` or `claude_desktop_config.json`)
|
|
|
509
590
|
}
|
|
510
591
|
```
|
|
511
592
|
|
|
512
|
-
Exposes
|
|
593
|
+
Exposes tools: `hippo_recall`, `hippo_remember`, `hippo_outcome`, `hippo_context`, `hippo_status`, `hippo_learn`, `hippo_wm_push`.
|
|
513
594
|
|
|
514
595
|
### OpenClaw Plugin
|
|
515
596
|
|
|
@@ -557,6 +638,11 @@ For how these mechanisms connect to LLM training, continual learning, and open r
|
|
|
557
638
|
|---------|-------|------|-------------|-----------|
|
|
558
639
|
| Decay by default | Yes | No | No | No |
|
|
559
640
|
| Retrieval strengthening | Yes | No | No | No |
|
|
641
|
+
| Hybrid search (BM25 + embeddings) | Yes | Embeddings only | No | No |
|
|
642
|
+
| Schema acceleration | Yes | No | No | No |
|
|
643
|
+
| Conflict detection + resolution | Yes | No | No | No |
|
|
644
|
+
| Multi-agent shared memory | Yes | No | No | No |
|
|
645
|
+
| Transfer scoring | Yes | No | No | No |
|
|
560
646
|
| Outcome tracking | Yes | No | No | No |
|
|
561
647
|
| Confidence tiers | Yes | No | No | No |
|
|
562
648
|
| Cross-tool import | Yes | No | No | No |
|
|
@@ -569,7 +655,7 @@ For how these mechanisms connect to LLM training, continual learning, and open r
|
|
|
569
655
|
| Git-friendly | Yes | No | Yes | No |
|
|
570
656
|
| Framework agnostic | Yes | Partial | Yes | No |
|
|
571
657
|
|
|
572
|
-
Mem0, Basic Memory, and Claude-Mem all implement "save everything, search later." Hippo
|
|
658
|
+
Mem0, Basic Memory, and Claude-Mem all implement "save everything, search later." Hippo implements all 7 hippocampal mechanisms: two-speed storage, decay, retrieval strengthening, schema acceleration, conflict detection, multi-agent transfer, and explicit working memory. It's the only tool that models what memories are worth keeping.
|
|
573
659
|
|
|
574
660
|
---
|
|
575
661
|
|
|
@@ -578,10 +664,10 @@ Mem0, Basic Memory, and Claude-Mem all implement "save everything, search later.
|
|
|
578
664
|
Issues and PRs welcome. Before contributing, run `hippo status` in the repo root to see the project's own memory.
|
|
579
665
|
|
|
580
666
|
The interesting problems:
|
|
581
|
-
- Better consolidation heuristics (
|
|
582
|
-
-
|
|
583
|
-
-
|
|
584
|
-
-
|
|
667
|
+
- Better consolidation heuristics (LLM-powered merge vs current text overlap)
|
|
668
|
+
- Web UI / dashboard for visualizing decay curves and memory health
|
|
669
|
+
- Optimal decay parameter tuning from real usage data
|
|
670
|
+
- Cross-agent transfer learning evaluation
|
|
585
671
|
|
|
586
672
|
## License
|
|
587
673
|
|
package/dist/cli.d.ts
CHANGED
|
@@ -5,13 +5,15 @@
|
|
|
5
5
|
* Commands:
|
|
6
6
|
* hippo init [--global]
|
|
7
7
|
* hippo remember <text> [--tag <t>] [--error] [--pin] [--global]
|
|
8
|
-
* hippo recall <query> [--budget <n>] [--json]
|
|
8
|
+
* hippo recall <query> [--budget <n>] [--json] [--why]
|
|
9
9
|
* hippo sleep [--dry-run]
|
|
10
10
|
* hippo status
|
|
11
11
|
* hippo outcome --good | --bad [--id <id>]
|
|
12
12
|
* hippo conflicts [--status <status>] [--json]
|
|
13
13
|
* hippo snapshot <save|show|clear>
|
|
14
|
-
* hippo session <log|show>
|
|
14
|
+
* hippo session <log|show|latest|resume>
|
|
15
|
+
* hippo handoff <create|latest|show>
|
|
16
|
+
* hippo current <show>
|
|
15
17
|
* hippo forget <id>
|
|
16
18
|
* hippo inspect <id>
|
|
17
19
|
* hippo embed [--status]
|
|
@@ -19,6 +21,7 @@
|
|
|
19
21
|
* hippo learn --git [--days <n>] [--repos <paths>]
|
|
20
22
|
* hippo promote <id>
|
|
21
23
|
* hippo sync
|
|
24
|
+
* hippo wm <push|read|clear|flush>
|
|
22
25
|
*/
|
|
23
26
|
export {};
|
|
24
27
|
//# sourceMappingURL=cli.d.ts.map
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;GAuBG"}
|