hippo-memory 0.3.1 → 0.4.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.
- package/README.md +273 -57
- package/dist/cli.d.ts +1 -1
- package/dist/cli.js +119 -28
- package/dist/cli.js.map +1 -1
- package/dist/mcp/server.d.ts +11 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +219 -0
- package/dist/mcp/server.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,16 +1,34 @@
|
|
|
1
1
|
# 🦛 Hippo
|
|
2
2
|
|
|
3
|
-
**
|
|
3
|
+
**The secret to good memory isn't remembering more. It's knowing what to forget.**
|
|
4
4
|
|
|
5
5
|
[](https://npmjs.com/package/hippo-memory)
|
|
6
6
|
[](./LICENSE)
|
|
7
7
|
|
|
8
|
+
```
|
|
9
|
+
Works with: Claude Code, Codex, Cursor, OpenClaw, any CLI agent
|
|
10
|
+
Imports from: ChatGPT, Claude (CLAUDE.md), Cursor (.cursorrules), any markdown
|
|
11
|
+
Storage: Markdown + YAML frontmatter. No database. Git-trackable.
|
|
12
|
+
Dependencies: Zero runtime deps. Optional embeddings via @xenova/transformers.
|
|
13
|
+
```
|
|
14
|
+
|
|
8
15
|
---
|
|
9
16
|
|
|
10
17
|
## The Problem
|
|
11
18
|
|
|
12
19
|
AI agents forget everything between sessions. Existing solutions just save everything and search later. That's a filing cabinet, not a brain.
|
|
13
20
|
|
|
21
|
+
Your memories are also trapped. ChatGPT knows things Claude doesn't. Cursor rules don't travel to Codex. Switch tools and you start from zero.
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Who Is This For
|
|
26
|
+
|
|
27
|
+
- **Multi-tool developers.** You use Claude Code on Monday, Cursor on Tuesday, Codex on Wednesday. Context doesn't carry over. Hippo is the shared memory layer across all of them.
|
|
28
|
+
- **Teams where agents repeat mistakes.** The agent hit the same deployment bug last week. And the week before. Hippo's error memories and decay mechanics mean hard lessons stick and noise fades.
|
|
29
|
+
- **Anyone whose CLAUDE.md is a mess.** Your instruction file grew to 400 lines of mixed rules, preferences, and stale workarounds. Hippo gives that structure: tags, confidence levels, automatic decay of outdated info.
|
|
30
|
+
- **People who want portable AI memory.** No vendor lock-in. Markdown files in your repo. Import from ChatGPT, Claude, Cursor. Export by copying a folder.
|
|
31
|
+
|
|
14
32
|
---
|
|
15
33
|
|
|
16
34
|
## Quick Start
|
|
@@ -25,6 +43,63 @@ hippo recall "data pipeline issues" --budget 2000
|
|
|
25
43
|
|
|
26
44
|
That's it. You have a memory system.
|
|
27
45
|
|
|
46
|
+
### Zero-config agent integration
|
|
47
|
+
|
|
48
|
+
`hippo init` auto-detects your agent framework and wires itself in:
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
cd my-project
|
|
52
|
+
hippo init
|
|
53
|
+
|
|
54
|
+
# Initialized Hippo at /my-project
|
|
55
|
+
# Directories: buffer/ episodic/ semantic/ conflicts/
|
|
56
|
+
# Auto-installed claude-code hook in CLAUDE.md
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
If you have a `CLAUDE.md`, it patches it. `AGENTS.md` for Codex/OpenClaw. `.cursorrules` for Cursor. No manual `hook install` needed. Your agent starts using Hippo on its next session.
|
|
60
|
+
|
|
61
|
+
To skip auto-detection: `hippo init --no-hooks`
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Cross-Tool Import
|
|
66
|
+
|
|
67
|
+
Your memories shouldn't be locked inside one tool. Hippo pulls them in from anywhere.
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
# ChatGPT memory export
|
|
71
|
+
hippo import --chatgpt memories.json
|
|
72
|
+
|
|
73
|
+
# Claude's CLAUDE.md (skips existing hippo hook blocks)
|
|
74
|
+
hippo import --claude CLAUDE.md
|
|
75
|
+
|
|
76
|
+
# Cursor rules
|
|
77
|
+
hippo import --cursor .cursorrules
|
|
78
|
+
|
|
79
|
+
# Any markdown file (headings become tags)
|
|
80
|
+
hippo import --markdown MEMORY.md
|
|
81
|
+
|
|
82
|
+
# Any text file
|
|
83
|
+
hippo import --file notes.txt
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
All import commands support `--dry-run` (preview without writing), `--global` (write to `~/.hippo/`), and `--tag` (add extra tags). Duplicates are detected and skipped automatically.
|
|
87
|
+
|
|
88
|
+
### Conversation Capture
|
|
89
|
+
|
|
90
|
+
Extract memories from raw conversation text. No LLM needed: pattern-based heuristics find decisions, rules, errors, and preferences.
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
# Pipe a conversation in
|
|
94
|
+
cat session.log | hippo capture --stdin
|
|
95
|
+
|
|
96
|
+
# Or point at a file
|
|
97
|
+
hippo capture --file conversation.md
|
|
98
|
+
|
|
99
|
+
# Preview first
|
|
100
|
+
hippo capture --file conversation.md --dry-run
|
|
101
|
+
```
|
|
102
|
+
|
|
28
103
|
---
|
|
29
104
|
|
|
30
105
|
## How It Works
|
|
@@ -33,26 +108,26 @@ Input enters the buffer. Important things get encoded into episodic memory. Duri
|
|
|
33
108
|
|
|
34
109
|
```
|
|
35
110
|
New information
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
111
|
+
|
|
|
112
|
+
v
|
|
113
|
+
+-----------+
|
|
114
|
+
| Buffer | Working memory. Current session only. No decay.
|
|
115
|
+
| (session) |
|
|
116
|
+
+-----+-----+
|
|
117
|
+
| encoded (tags, strength, half-life assigned)
|
|
118
|
+
v
|
|
119
|
+
+-----------+
|
|
120
|
+
| Episodic | Timestamped memories. Decay by default.
|
|
121
|
+
| Store | Retrieval strengthens. Errors stick longer.
|
|
122
|
+
+-----+-----+
|
|
123
|
+
| consolidation (hippo sleep)
|
|
124
|
+
v
|
|
125
|
+
+-----------+
|
|
126
|
+
| Semantic | Compressed patterns. Stable. Schema-aware.
|
|
127
|
+
| Store | Extracted from repeated episodes.
|
|
128
|
+
+-----------+
|
|
129
|
+
|
|
130
|
+
hippo sleep: decay + replay + merge
|
|
56
131
|
```
|
|
57
132
|
|
|
58
133
|
---
|
|
@@ -81,13 +156,13 @@ Use it or lose it. Each recall boosts the half-life by 2 days.
|
|
|
81
156
|
|
|
82
157
|
```bash
|
|
83
158
|
hippo recall "cache issues"
|
|
84
|
-
# finds mem_a1b2c3, retrieval_count: 1
|
|
85
|
-
# half_life extended: 7d
|
|
159
|
+
# finds mem_a1b2c3, retrieval_count: 1 -> 2
|
|
160
|
+
# half_life extended: 7d -> 9d
|
|
86
161
|
# strength recalculated from retrieval timestamp
|
|
87
162
|
|
|
88
163
|
hippo recall "cache issues" # again next week
|
|
89
|
-
# retrieval_count: 2
|
|
90
|
-
# half_life: 9d
|
|
164
|
+
# retrieval_count: 2 -> 3
|
|
165
|
+
# half_life: 9d -> 11d
|
|
91
166
|
# this memory is learning to survive
|
|
92
167
|
```
|
|
93
168
|
|
|
@@ -108,6 +183,49 @@ hippo remember "deployment failed: forgot to run migrations" --error
|
|
|
108
183
|
|
|
109
184
|
---
|
|
110
185
|
|
|
186
|
+
### Confidence tiers
|
|
187
|
+
|
|
188
|
+
Every memory carries a confidence level: `verified`, `observed`, `inferred`, or `stale`. This tells agents how much to trust what they're reading.
|
|
189
|
+
|
|
190
|
+
```bash
|
|
191
|
+
hippo remember "API rate limit is 100/min" --verified
|
|
192
|
+
hippo remember "deploy usually takes ~3 min" --observed
|
|
193
|
+
hippo remember "the flaky test might be a race condition" --inferred
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
When context is generated, confidence is shown inline:
|
|
197
|
+
|
|
198
|
+
```
|
|
199
|
+
[verified] API rate limit is 100/min per the docs
|
|
200
|
+
[observed] Deploy usually takes ~3 min
|
|
201
|
+
[inferred] The flaky test might be a race condition
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
Agents can see at a glance what's established fact vs. a pattern worth questioning.
|
|
205
|
+
|
|
206
|
+
Memories unretrieved for 30+ days are automatically marked `stale` during the next `hippo sleep`.
|
|
207
|
+
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
### Observation framing
|
|
211
|
+
|
|
212
|
+
Memories aren't presented as bare assertions. By default, Hippo frames them as observations with dates, so agents treat them as context rather than commands.
|
|
213
|
+
|
|
214
|
+
```bash
|
|
215
|
+
hippo context --framing observe # default
|
|
216
|
+
# Output: "Previously observed (2026-03-10): deploy takes ~3 min"
|
|
217
|
+
|
|
218
|
+
hippo context --framing suggest
|
|
219
|
+
# Output: "Consider: deploy takes ~3 min"
|
|
220
|
+
|
|
221
|
+
hippo context --framing assert
|
|
222
|
+
# Output: "Deploy takes ~3 min"
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
Three modes: `observe` (default), `suggest`, `assert`. Choose based on how directive you want the memory to be.
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
111
229
|
### Sleep consolidation
|
|
112
230
|
|
|
113
231
|
Run `hippo sleep` and episodes compress into patterns.
|
|
@@ -115,9 +233,9 @@ Run `hippo sleep` and episodes compress into patterns.
|
|
|
115
233
|
```bash
|
|
116
234
|
hippo sleep
|
|
117
235
|
|
|
118
|
-
#
|
|
236
|
+
# Running consolidation...
|
|
119
237
|
#
|
|
120
|
-
#
|
|
238
|
+
# Results:
|
|
121
239
|
# Active memories: 23
|
|
122
240
|
# Removed (decayed): 4
|
|
123
241
|
# Merged episodic: 6
|
|
@@ -137,11 +255,11 @@ hippo recall "why is the gold model broken"
|
|
|
137
255
|
# ... you read the memories and fix the bug ...
|
|
138
256
|
|
|
139
257
|
hippo outcome --good
|
|
140
|
-
#
|
|
258
|
+
# Applied positive outcome to 3 memories
|
|
141
259
|
# half_life +5d on each
|
|
142
260
|
|
|
143
261
|
hippo outcome --bad
|
|
144
|
-
#
|
|
262
|
+
# Applied negative outcome to 3 memories
|
|
145
263
|
# half_life -3d on each
|
|
146
264
|
# irrelevant memories decay faster
|
|
147
265
|
```
|
|
@@ -167,24 +285,77 @@ Results are ranked by `relevance * strength * recency`. The highest-signal memor
|
|
|
167
285
|
|
|
168
286
|
---
|
|
169
287
|
|
|
288
|
+
### Auto-learn from git
|
|
289
|
+
|
|
290
|
+
Hippo can scan your commit history and extract lessons from fix/revert/bug commits automatically.
|
|
291
|
+
|
|
292
|
+
```bash
|
|
293
|
+
# Learn from the last 7 days of commits
|
|
294
|
+
hippo learn --git
|
|
295
|
+
|
|
296
|
+
# Learn from the last 30 days
|
|
297
|
+
hippo learn --git --days 30
|
|
298
|
+
|
|
299
|
+
# Scan multiple repos in one pass
|
|
300
|
+
hippo learn --git --repos "~/project-a,~/project-b,~/project-c"
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
The `--repos` flag accepts comma-separated paths. Hippo scans each repo's git log, extracts fix/revert/bug lessons, deduplicates against existing memories, and stores new ones. Pair with `hippo sleep` afterwards to consolidate.
|
|
304
|
+
|
|
305
|
+
Ideal for a weekly cron:
|
|
306
|
+
|
|
307
|
+
```bash
|
|
308
|
+
hippo learn --git --repos "~/repo1,~/repo2" --days 7
|
|
309
|
+
hippo sleep
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
---
|
|
313
|
+
|
|
314
|
+
### Watch mode
|
|
315
|
+
|
|
316
|
+
Wrap any command with `hippo watch` to auto-learn from failures:
|
|
317
|
+
|
|
318
|
+
```bash
|
|
319
|
+
hippo watch "npm run build"
|
|
320
|
+
# if it fails, Hippo captures the error automatically
|
|
321
|
+
# next time an agent asks about build issues, the memory is there
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
---
|
|
325
|
+
|
|
170
326
|
## CLI Reference
|
|
171
327
|
|
|
172
328
|
| Command | What it does |
|
|
173
329
|
|---------|-------------|
|
|
174
|
-
| `hippo init` | Create `.hippo/`
|
|
330
|
+
| `hippo init` | Create `.hippo/` + auto-install agent hooks |
|
|
331
|
+
| `hippo init --global` | Create global store at `~/.hippo/` |
|
|
332
|
+
| `hippo init --no-hooks` | Create `.hippo/` without auto-installing hooks |
|
|
175
333
|
| `hippo remember "<text>"` | Store a memory |
|
|
176
334
|
| `hippo remember "<text>" --tag <t>` | Store with tag (repeatable) |
|
|
177
335
|
| `hippo remember "<text>" --error` | Store as error (2x half-life) |
|
|
178
336
|
| `hippo remember "<text>" --pin` | Store with no decay |
|
|
179
|
-
| `hippo
|
|
337
|
+
| `hippo remember "<text>" --verified` | Set confidence: verified (default) |
|
|
338
|
+
| `hippo remember "<text>" --observed` | Set confidence: observed |
|
|
339
|
+
| `hippo remember "<text>" --inferred` | Set confidence: inferred |
|
|
340
|
+
| `hippo remember "<text>" --global` | Store in global `~/.hippo/` store |
|
|
341
|
+
| `hippo recall "<query>"` | Retrieve relevant memories (local + global) |
|
|
180
342
|
| `hippo recall "<query>" --budget <n>` | Recall within token limit (default: 4000) |
|
|
181
343
|
| `hippo recall "<query>" --json` | Output as JSON |
|
|
182
344
|
| `hippo context --auto` | Smart context injection (auto-detects task from git) |
|
|
183
345
|
| `hippo context "<query>" --budget <n>` | Context injection with explicit query (default: 1500) |
|
|
184
346
|
| `hippo context --budget 0` | Skip entirely (zero token cost) |
|
|
185
|
-
| `hippo
|
|
186
|
-
| `hippo
|
|
187
|
-
| `hippo
|
|
347
|
+
| `hippo context --framing <mode>` | Framing: observe (default), suggest, assert |
|
|
348
|
+
| `hippo context --format <fmt>` | Output format: markdown (default) or json |
|
|
349
|
+
| `hippo import --chatgpt <path>` | Import from ChatGPT memory export (JSON or txt) |
|
|
350
|
+
| `hippo import --claude <path>` | Import from CLAUDE.md or Claude memory.json |
|
|
351
|
+
| `hippo import --cursor <path>` | Import from .cursorrules or .cursor/rules |
|
|
352
|
+
| `hippo import --markdown <path>` | Import from structured markdown (headings -> tags) |
|
|
353
|
+
| `hippo import --file <path>` | Import from any text file |
|
|
354
|
+
| `hippo import --dry-run` | Preview import without writing |
|
|
355
|
+
| `hippo import --global` | Write imported memories to `~/.hippo/` |
|
|
356
|
+
| `hippo capture --stdin` | Extract memories from piped conversation text |
|
|
357
|
+
| `hippo capture --file <path>` | Extract memories from a file |
|
|
358
|
+
| `hippo capture --dry-run` | Preview extraction without writing |
|
|
188
359
|
| `hippo sleep` | Run consolidation (decay + merge + compress) |
|
|
189
360
|
| `hippo sleep --dry-run` | Preview consolidation without writing |
|
|
190
361
|
| `hippo status` | Memory health: counts, strengths, last sleep |
|
|
@@ -193,18 +364,45 @@ Results are ranked by `relevance * strength * recency`. The highest-signal memor
|
|
|
193
364
|
| `hippo outcome --id <id> --good` | Target a specific memory |
|
|
194
365
|
| `hippo inspect <id>` | Full detail on one memory |
|
|
195
366
|
| `hippo forget <id>` | Force remove a memory |
|
|
367
|
+
| `hippo embed` | Embed all memories for semantic search |
|
|
368
|
+
| `hippo embed --status` | Show embedding coverage |
|
|
369
|
+
| `hippo watch "<command>"` | Run command, auto-learn from failures |
|
|
370
|
+
| `hippo learn --git` | Scan recent git commits for lessons |
|
|
371
|
+
| `hippo learn --git --days <n>` | Scan N days back (default: 7) |
|
|
372
|
+
| `hippo learn --git --repos <paths>` | Scan multiple repos (comma-separated) |
|
|
373
|
+
| `hippo promote <id>` | Copy a local memory to the global store |
|
|
374
|
+
| `hippo sync` | Pull global memories into local project |
|
|
375
|
+
| `hippo hook list` | Show available framework hooks |
|
|
376
|
+
| `hippo hook install <target>` | Install hook (claude-code, codex, cursor, openclaw) |
|
|
377
|
+
| `hippo hook uninstall <target>` | Remove hook |
|
|
378
|
+
| `hippo mcp` | Start MCP server (stdio transport) |
|
|
196
379
|
|
|
197
380
|
---
|
|
198
381
|
|
|
199
382
|
## Framework Integrations
|
|
200
383
|
|
|
201
|
-
|
|
384
|
+
### Auto-install (recommended)
|
|
385
|
+
|
|
386
|
+
`hippo init` detects your agent framework and patches the right config file automatically:
|
|
387
|
+
|
|
388
|
+
| Framework | Detected by | Patches |
|
|
389
|
+
|-----------|------------|---------|
|
|
390
|
+
| Claude Code | `CLAUDE.md` or `.claude/settings.json` | `CLAUDE.md` |
|
|
391
|
+
| Codex | `AGENTS.md` or `.codex` | `AGENTS.md` |
|
|
392
|
+
| Cursor | `.cursorrules` or `.cursor/rules` | `.cursorrules` |
|
|
393
|
+
| OpenClaw | `.openclaw` or `AGENTS.md` | `AGENTS.md` |
|
|
394
|
+
|
|
395
|
+
No extra commands needed. Just `hippo init` and your agent knows about Hippo.
|
|
396
|
+
|
|
397
|
+
### Manual install
|
|
398
|
+
|
|
399
|
+
If you prefer explicit control:
|
|
202
400
|
|
|
203
401
|
```bash
|
|
204
402
|
hippo hook install claude-code # patches CLAUDE.md
|
|
205
403
|
hippo hook install codex # patches AGENTS.md
|
|
206
404
|
hippo hook install cursor # patches .cursorrules
|
|
207
|
-
hippo hook install openclaw #
|
|
405
|
+
hippo hook install openclaw # patches AGENTS.md
|
|
208
406
|
```
|
|
209
407
|
|
|
210
408
|
This adds a `<!-- hippo:start -->` ... `<!-- hippo:end -->` block that tells the agent to:
|
|
@@ -229,27 +427,37 @@ After completing work successfully:
|
|
|
229
427
|
hippo outcome --good
|
|
230
428
|
```
|
|
231
429
|
|
|
232
|
-
###
|
|
430
|
+
### MCP Server
|
|
431
|
+
|
|
432
|
+
For any MCP-compatible client (Cursor, Windsurf, Cline, Claude Desktop):
|
|
433
|
+
|
|
434
|
+
```bash
|
|
435
|
+
hippo mcp # starts MCP server over stdio
|
|
436
|
+
```
|
|
233
437
|
|
|
234
|
-
|
|
438
|
+
Add to your MCP config (e.g. `.cursor/mcp.json` or `claude_desktop_config.json`):
|
|
235
439
|
|
|
236
440
|
```json
|
|
237
441
|
{
|
|
238
|
-
"
|
|
239
|
-
{
|
|
240
|
-
"
|
|
241
|
-
"
|
|
242
|
-
"command": "hippo context --auto --budget 1500"
|
|
243
|
-
},
|
|
244
|
-
{
|
|
245
|
-
"name": "memory_store",
|
|
246
|
-
"description": "Store a new memory",
|
|
247
|
-
"command": "hippo remember {text} --error"
|
|
442
|
+
"mcpServers": {
|
|
443
|
+
"hippo-memory": {
|
|
444
|
+
"command": "hippo",
|
|
445
|
+
"args": ["mcp"]
|
|
248
446
|
}
|
|
249
|
-
|
|
447
|
+
}
|
|
250
448
|
}
|
|
251
449
|
```
|
|
252
450
|
|
|
451
|
+
Exposes 6 tools: `hippo_recall`, `hippo_remember`, `hippo_outcome`, `hippo_context`, `hippo_status`, `hippo_learn`.
|
|
452
|
+
|
|
453
|
+
### OpenClaw Plugin
|
|
454
|
+
|
|
455
|
+
Native plugin with auto-context injection at session start. See [extensions/openclaw-plugin/](extensions/openclaw-plugin/).
|
|
456
|
+
|
|
457
|
+
### Claude Code Plugin
|
|
458
|
+
|
|
459
|
+
Plugin with SessionStart/Stop hooks and error auto-capture. See [extensions/claude-code-plugin/](extensions/claude-code-plugin/).
|
|
460
|
+
|
|
253
461
|
Full integration details: [integrations/](integrations/)
|
|
254
462
|
|
|
255
463
|
---
|
|
@@ -278,14 +486,21 @@ For how these mechanisms connect to LLM training, continual learning, and open r
|
|
|
278
486
|
|
|
279
487
|
| Feature | Hippo | Mem0 | Basic Memory | Claude-Mem |
|
|
280
488
|
|---------|-------|------|-------------|-----------|
|
|
281
|
-
| Decay by default |
|
|
282
|
-
| Retrieval strengthening |
|
|
283
|
-
| Outcome tracking |
|
|
284
|
-
|
|
|
285
|
-
|
|
|
286
|
-
|
|
|
287
|
-
|
|
288
|
-
|
|
489
|
+
| Decay by default | Yes | No | No | No |
|
|
490
|
+
| Retrieval strengthening | Yes | No | No | No |
|
|
491
|
+
| Outcome tracking | Yes | No | No | No |
|
|
492
|
+
| Confidence tiers | Yes | No | No | No |
|
|
493
|
+
| Cross-tool import | Yes | No | No | No |
|
|
494
|
+
| Conversation capture | Yes | No | No | No |
|
|
495
|
+
| Auto-hook install | Yes | No | No | No |
|
|
496
|
+
| MCP server | Yes | No | No | No |
|
|
497
|
+
| Native plugins | OpenClaw + Claude Code | No | No | No |
|
|
498
|
+
| Multi-repo git learn | Yes | No | No | No |
|
|
499
|
+
| Zero dependencies | Yes | No | No | No |
|
|
500
|
+
| Git-friendly | Yes | No | Yes | No |
|
|
501
|
+
| Framework agnostic | Yes | Partial | Yes | No |
|
|
502
|
+
|
|
503
|
+
Mem0, Basic Memory, and Claude-Mem all implement "save everything, search later." Hippo is the only one that models what memories are worth keeping, and the only one that lets you bring memories from other tools.
|
|
289
504
|
|
|
290
505
|
---
|
|
291
506
|
|
|
@@ -299,6 +514,7 @@ The interesting problems:
|
|
|
299
514
|
- MCP server wrapper
|
|
300
515
|
- Conflict detection between semantic memories
|
|
301
516
|
- Schema acceleration (fast-track memories that fit existing patterns)
|
|
517
|
+
- Multi-agent shared memory with attribution
|
|
302
518
|
|
|
303
519
|
## License
|
|
304
520
|
|
package/dist/cli.d.ts
CHANGED
package/dist/cli.js
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* hippo inspect <id>
|
|
14
14
|
* hippo embed [--status]
|
|
15
15
|
* hippo watch "<command>"
|
|
16
|
-
* hippo learn --git [--days <n>]
|
|
16
|
+
* hippo learn --git [--days <n>] [--repos <paths>]
|
|
17
17
|
* hippo promote <id>
|
|
18
18
|
* hippo sync
|
|
19
19
|
*/
|
|
@@ -93,14 +93,70 @@ function cmdInit(hippoRoot, flags) {
|
|
|
93
93
|
console.log('Initialized global Hippo store at', globalRoot);
|
|
94
94
|
return;
|
|
95
95
|
}
|
|
96
|
-
|
|
96
|
+
const alreadyExists = isInitialized(hippoRoot);
|
|
97
|
+
if (alreadyExists) {
|
|
97
98
|
console.log('Already initialized at', hippoRoot);
|
|
98
|
-
return;
|
|
99
99
|
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
100
|
+
else {
|
|
101
|
+
initStore(hippoRoot);
|
|
102
|
+
console.log('Initialized Hippo at', hippoRoot);
|
|
103
|
+
console.log(' Directories: buffer/ episodic/ semantic/ conflicts/');
|
|
104
|
+
console.log(' Files: index.json stats.json');
|
|
105
|
+
}
|
|
106
|
+
// Auto-detect and install hooks (unless --no-hooks)
|
|
107
|
+
if (!flags['no-hooks']) {
|
|
108
|
+
autoInstallHooks(alreadyExists);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Detect agent config files in cwd and auto-install hippo hooks.
|
|
113
|
+
* Skips files that already have a <!-- hippo:start --> block.
|
|
114
|
+
*/
|
|
115
|
+
function autoInstallHooks(quiet) {
|
|
116
|
+
const cwd = process.cwd();
|
|
117
|
+
// Map: filename to check -> hook key(s) to install
|
|
118
|
+
const detectors = [
|
|
119
|
+
{ files: ['CLAUDE.md', '.claude/settings.json'], hook: 'claude-code' },
|
|
120
|
+
{ files: ['AGENTS.md', '.codex'], hook: 'codex' },
|
|
121
|
+
{ files: ['.cursorrules', '.cursor/rules'], hook: 'cursor' },
|
|
122
|
+
{ files: ['.openclaw', 'AGENTS.md'], hook: 'openclaw' },
|
|
123
|
+
];
|
|
124
|
+
// Track which hook files we've already touched to avoid double-patching AGENTS.md
|
|
125
|
+
const installed = new Set();
|
|
126
|
+
for (const { files, hook } of detectors) {
|
|
127
|
+
const hookDef = HOOKS[hook];
|
|
128
|
+
if (!hookDef)
|
|
129
|
+
continue;
|
|
130
|
+
// Check if any marker file exists
|
|
131
|
+
const detected = files.some((f) => fs.existsSync(path.join(cwd, f)));
|
|
132
|
+
if (!detected)
|
|
133
|
+
continue;
|
|
134
|
+
const targetPath = path.resolve(cwd, hookDef.file);
|
|
135
|
+
// Skip if we already installed a hook into this file
|
|
136
|
+
if (installed.has(targetPath))
|
|
137
|
+
continue;
|
|
138
|
+
// Skip if hook already present
|
|
139
|
+
if (fs.existsSync(targetPath)) {
|
|
140
|
+
const content = fs.readFileSync(targetPath, 'utf8');
|
|
141
|
+
if (content.includes(HOOK_MARKERS.start))
|
|
142
|
+
continue;
|
|
143
|
+
}
|
|
144
|
+
// Install the hook
|
|
145
|
+
const block = `${HOOK_MARKERS.start}\n${hookDef.content}\n${HOOK_MARKERS.end}`;
|
|
146
|
+
if (fs.existsSync(targetPath)) {
|
|
147
|
+
const existing = fs.readFileSync(targetPath, 'utf8');
|
|
148
|
+
const sep = existing.endsWith('\n') ? '\n' : '\n\n';
|
|
149
|
+
fs.writeFileSync(targetPath, existing + sep + block + '\n', 'utf8');
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
const dir = path.dirname(targetPath);
|
|
153
|
+
if (!fs.existsSync(dir))
|
|
154
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
155
|
+
fs.writeFileSync(targetPath, block + '\n', 'utf8');
|
|
156
|
+
}
|
|
157
|
+
installed.add(targetPath);
|
|
158
|
+
console.log(` Auto-installed ${hook} hook in ${hookDef.file}`);
|
|
159
|
+
}
|
|
104
160
|
}
|
|
105
161
|
function cmdRemember(hippoRoot, text, flags) {
|
|
106
162
|
const useGlobal = Boolean(flags['global']);
|
|
@@ -606,24 +662,17 @@ async function cmdWatch(command, hippoRoot) {
|
|
|
606
662
|
// ---------------------------------------------------------------------------
|
|
607
663
|
// Learn command
|
|
608
664
|
// ---------------------------------------------------------------------------
|
|
609
|
-
function
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
console.error('Usage: hippo learn --git [--days <n>]');
|
|
613
|
-
process.exit(1);
|
|
614
|
-
}
|
|
615
|
-
const days = parseInt(String(flags['days'] ?? '7'), 10);
|
|
616
|
-
const cwd = process.cwd();
|
|
617
|
-
console.log(`Scanning git log for the last ${days} days...`);
|
|
618
|
-
const gitLog = fetchGitLog(cwd, days);
|
|
665
|
+
function learnFromRepo(hippoRoot, repoPath, days, label) {
|
|
666
|
+
const prefix = label ? `[${label}] ` : '';
|
|
667
|
+
const gitLog = fetchGitLog(repoPath, days);
|
|
619
668
|
if (!gitLog.trim()) {
|
|
620
|
-
console.log(
|
|
621
|
-
return;
|
|
669
|
+
console.log(`${prefix}No git history found (or not a git repository).`);
|
|
670
|
+
return { added: 0, skipped: 0 };
|
|
622
671
|
}
|
|
623
672
|
const lessons = extractLessons(gitLog);
|
|
624
673
|
if (lessons.length === 0) {
|
|
625
|
-
console.log(
|
|
626
|
-
return;
|
|
674
|
+
console.log(`${prefix}No fix/revert/bug commits found in the specified period.`);
|
|
675
|
+
return { added: 0, skipped: 0 };
|
|
627
676
|
}
|
|
628
677
|
let added = 0;
|
|
629
678
|
let skipped = 0;
|
|
@@ -645,7 +694,34 @@ function cmdLearn(hippoRoot, flags) {
|
|
|
645
694
|
}
|
|
646
695
|
added++;
|
|
647
696
|
}
|
|
648
|
-
console.log(
|
|
697
|
+
console.log(`${prefix}${added} new lessons added, ${skipped} duplicates skipped.`);
|
|
698
|
+
return { added, skipped };
|
|
699
|
+
}
|
|
700
|
+
function cmdLearn(hippoRoot, flags) {
|
|
701
|
+
requireInit(hippoRoot);
|
|
702
|
+
if (!flags['git']) {
|
|
703
|
+
console.error('Usage: hippo learn --git [--days <n>] [--repos <paths>]');
|
|
704
|
+
process.exit(1);
|
|
705
|
+
}
|
|
706
|
+
const days = parseInt(String(flags['days'] ?? '7'), 10);
|
|
707
|
+
console.log(`Scanning git log for the last ${days} days...`);
|
|
708
|
+
const reposFlag = flags['repos'];
|
|
709
|
+
if (reposFlag && typeof reposFlag === 'string') {
|
|
710
|
+
const repos = reposFlag.split(',').map((r) => r.trim()).filter(Boolean);
|
|
711
|
+
let totalAdded = 0;
|
|
712
|
+
let totalSkipped = 0;
|
|
713
|
+
for (const repo of repos) {
|
|
714
|
+
const label = path.basename(repo);
|
|
715
|
+
const { added, skipped } = learnFromRepo(hippoRoot, repo, days, label);
|
|
716
|
+
totalAdded += added;
|
|
717
|
+
totalSkipped += skipped;
|
|
718
|
+
}
|
|
719
|
+
console.log(`Git learn complete: ${totalAdded} new lessons added, ${totalSkipped} duplicates skipped across ${repos.length} repos.`);
|
|
720
|
+
}
|
|
721
|
+
else {
|
|
722
|
+
const { added, skipped } = learnFromRepo(hippoRoot, process.cwd(), days);
|
|
723
|
+
console.log(`Git learn complete: ${added} new lessons added, ${skipped} duplicates skipped.`);
|
|
724
|
+
}
|
|
649
725
|
}
|
|
650
726
|
// ---------------------------------------------------------------------------
|
|
651
727
|
// Import command
|
|
@@ -845,25 +921,31 @@ hippo outcome --good
|
|
|
845
921
|
`.trim(),
|
|
846
922
|
},
|
|
847
923
|
'openclaw': {
|
|
848
|
-
file: '.
|
|
924
|
+
file: 'AGENTS.md',
|
|
849
925
|
description: 'OpenClaw',
|
|
850
926
|
content: `
|
|
851
|
-
|
|
927
|
+
## Project Memory (Hippo)
|
|
852
928
|
|
|
853
|
-
|
|
929
|
+
At the start of every session, run:
|
|
854
930
|
\`\`\`bash
|
|
855
931
|
hippo context --auto --budget 1500
|
|
856
932
|
\`\`\`
|
|
933
|
+
Read the output before writing any code.
|
|
857
934
|
|
|
858
|
-
|
|
935
|
+
On errors or unexpected behaviour:
|
|
859
936
|
\`\`\`bash
|
|
860
|
-
hippo remember "<
|
|
937
|
+
hippo remember "<description of what went wrong>" --error
|
|
861
938
|
\`\`\`
|
|
862
939
|
|
|
863
|
-
On
|
|
940
|
+
On task completion:
|
|
864
941
|
\`\`\`bash
|
|
865
942
|
hippo outcome --good
|
|
866
943
|
\`\`\`
|
|
944
|
+
|
|
945
|
+
After significant coding sessions:
|
|
946
|
+
\`\`\`bash
|
|
947
|
+
hippo learn --git
|
|
948
|
+
\`\`\`
|
|
867
949
|
`.trim(),
|
|
868
950
|
},
|
|
869
951
|
};
|
|
@@ -952,6 +1034,7 @@ Usage: hippo <command> [options]
|
|
|
952
1034
|
Commands:
|
|
953
1035
|
init Create .hippo/ structure in current directory
|
|
954
1036
|
--global Init the global store at ~/.hippo/
|
|
1037
|
+
--no-hooks Skip auto-detecting and installing agent hooks
|
|
955
1038
|
remember <text> Store a memory
|
|
956
1039
|
--tag <tag> Add a tag (repeatable)
|
|
957
1040
|
--error Tag as error (boosts retention)
|
|
@@ -983,6 +1066,7 @@ Commands:
|
|
|
983
1066
|
learn Learn lessons from repository history
|
|
984
1067
|
--git Scan recent git commits for lessons
|
|
985
1068
|
--days <n> Scan this many days back (default: 7)
|
|
1069
|
+
--repos <paths> Comma-separated repo paths to scan
|
|
986
1070
|
promote <id> Copy a local memory to the global store
|
|
987
1071
|
sync Pull global memories into local project
|
|
988
1072
|
import Import memories from other AI tools
|
|
@@ -1004,6 +1088,7 @@ Commands:
|
|
|
1004
1088
|
hook list Show available hooks
|
|
1005
1089
|
hook install <target> Install hook (claude-code|codex|cursor|openclaw)
|
|
1006
1090
|
hook uninstall <target> Remove hook
|
|
1091
|
+
mcp Start MCP server (stdio transport)
|
|
1007
1092
|
|
|
1008
1093
|
Examples:
|
|
1009
1094
|
hippo init
|
|
@@ -1133,6 +1218,12 @@ async function main() {
|
|
|
1133
1218
|
});
|
|
1134
1219
|
break;
|
|
1135
1220
|
}
|
|
1221
|
+
case 'mcp':
|
|
1222
|
+
// Start MCP server over stdio - dynamically import to keep main CLI lean
|
|
1223
|
+
await import('./mcp/server.js');
|
|
1224
|
+
// Server runs until stdin closes, so we never reach here
|
|
1225
|
+
await new Promise(() => { }); // hang forever
|
|
1226
|
+
break;
|
|
1136
1227
|
case 'help':
|
|
1137
1228
|
case '--help':
|
|
1138
1229
|
case '-h':
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Hippo Memory MCP Server
|
|
4
|
+
*
|
|
5
|
+
* Exposes hippo memory as MCP tools over stdio transport.
|
|
6
|
+
* Works with any MCP-compatible client: Cursor, Windsurf, Cline, Claude Desktop, etc.
|
|
7
|
+
*
|
|
8
|
+
* Usage: hippo mcp (or npx hippo-memory mcp)
|
|
9
|
+
*/
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG"}
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Hippo Memory MCP Server
|
|
4
|
+
*
|
|
5
|
+
* Exposes hippo memory as MCP tools over stdio transport.
|
|
6
|
+
* Works with any MCP-compatible client: Cursor, Windsurf, Cline, Claude Desktop, etc.
|
|
7
|
+
*
|
|
8
|
+
* Usage: hippo mcp (or npx hippo-memory mcp)
|
|
9
|
+
*/
|
|
10
|
+
import { execSync } from 'child_process';
|
|
11
|
+
// ── Helpers ──
|
|
12
|
+
function runHippo(args) {
|
|
13
|
+
try {
|
|
14
|
+
return execSync(`hippo ${args}`, {
|
|
15
|
+
timeout: 30000,
|
|
16
|
+
encoding: 'utf-8',
|
|
17
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
18
|
+
}).trim();
|
|
19
|
+
}
|
|
20
|
+
catch (err) {
|
|
21
|
+
return err.stdout?.trim() || err.message || 'hippo command failed';
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
function send(msg) {
|
|
25
|
+
const json = JSON.stringify(msg);
|
|
26
|
+
const header = `Content-Length: ${Buffer.byteLength(json)}\r\n\r\n`;
|
|
27
|
+
process.stdout.write(header + json);
|
|
28
|
+
}
|
|
29
|
+
// ── Tool definitions ──
|
|
30
|
+
const TOOLS = [
|
|
31
|
+
{
|
|
32
|
+
name: 'hippo_recall',
|
|
33
|
+
description: 'Retrieve relevant memories from the project memory store. Returns memories ranked by relevance, strength, and recency within the token budget. Use at session start or when you need context about a topic.',
|
|
34
|
+
inputSchema: {
|
|
35
|
+
type: 'object',
|
|
36
|
+
properties: {
|
|
37
|
+
query: { type: 'string', description: 'What to search for in memory (natural language)' },
|
|
38
|
+
budget: { type: 'number', description: 'Max tokens to return (default: 1500)' },
|
|
39
|
+
},
|
|
40
|
+
required: ['query'],
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
name: 'hippo_remember',
|
|
45
|
+
description: 'Store a new memory. Use when you learn something non-obvious, hit an error, or discover a useful pattern. Memories decay over time unless retrieved. Errors get 2x half-life.',
|
|
46
|
+
inputSchema: {
|
|
47
|
+
type: 'object',
|
|
48
|
+
properties: {
|
|
49
|
+
text: {
|
|
50
|
+
type: 'string',
|
|
51
|
+
description: 'The memory to store (1-2 sentences, specific and concrete)',
|
|
52
|
+
},
|
|
53
|
+
error: { type: 'boolean', description: 'Mark as error memory (doubles half-life)' },
|
|
54
|
+
pin: { type: 'boolean', description: 'Pin memory (never decays)' },
|
|
55
|
+
tag: { type: 'string', description: 'Optional tag for categorization' },
|
|
56
|
+
},
|
|
57
|
+
required: ['text'],
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
name: 'hippo_outcome',
|
|
62
|
+
description: 'Report whether recalled memories were useful. Strengthens good memories (+5 days half-life) and weakens bad ones (-3 days). Call after completing work.',
|
|
63
|
+
inputSchema: {
|
|
64
|
+
type: 'object',
|
|
65
|
+
properties: {
|
|
66
|
+
good: {
|
|
67
|
+
type: 'boolean',
|
|
68
|
+
description: 'true = memories helped, false = memories were irrelevant',
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
required: ['good'],
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
name: 'hippo_context',
|
|
76
|
+
description: 'Smart context injection: auto-detects current task from git state and returns relevant memories. Use at the start of any session.',
|
|
77
|
+
inputSchema: {
|
|
78
|
+
type: 'object',
|
|
79
|
+
properties: {
|
|
80
|
+
budget: { type: 'number', description: 'Max tokens (default: 1500)' },
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
name: 'hippo_status',
|
|
86
|
+
description: 'Check memory health: counts, strengths, at-risk memories, last consolidation time.',
|
|
87
|
+
inputSchema: {
|
|
88
|
+
type: 'object',
|
|
89
|
+
properties: {},
|
|
90
|
+
},
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
name: 'hippo_learn',
|
|
94
|
+
description: 'Scan recent git commits for lessons from fix/revert/bug patterns. Run after coding sessions.',
|
|
95
|
+
inputSchema: {
|
|
96
|
+
type: 'object',
|
|
97
|
+
properties: {
|
|
98
|
+
days: { type: 'number', description: 'Days to scan back (default: 7)' },
|
|
99
|
+
},
|
|
100
|
+
},
|
|
101
|
+
},
|
|
102
|
+
];
|
|
103
|
+
// ── Tool execution ──
|
|
104
|
+
function executeTool(name, args) {
|
|
105
|
+
switch (name) {
|
|
106
|
+
case 'hippo_recall': {
|
|
107
|
+
const query = String(args.query || '').replace(/"/g, '\\"');
|
|
108
|
+
const budget = Number(args.budget) || 1500;
|
|
109
|
+
return runHippo(`recall "${query}" --budget ${budget}`);
|
|
110
|
+
}
|
|
111
|
+
case 'hippo_remember': {
|
|
112
|
+
const text = String(args.text || '').replace(/"/g, '\\"');
|
|
113
|
+
let cmd = `remember "${text}"`;
|
|
114
|
+
if (args.error)
|
|
115
|
+
cmd += ' --error';
|
|
116
|
+
if (args.pin)
|
|
117
|
+
cmd += ' --pin';
|
|
118
|
+
if (args.tag)
|
|
119
|
+
cmd += ` --tag ${args.tag}`;
|
|
120
|
+
return runHippo(cmd);
|
|
121
|
+
}
|
|
122
|
+
case 'hippo_outcome': {
|
|
123
|
+
return runHippo(`outcome ${args.good ? '--good' : '--bad'}`);
|
|
124
|
+
}
|
|
125
|
+
case 'hippo_context': {
|
|
126
|
+
const budget = Number(args.budget) || 1500;
|
|
127
|
+
return runHippo(`context --auto --budget ${budget}`);
|
|
128
|
+
}
|
|
129
|
+
case 'hippo_status': {
|
|
130
|
+
return runHippo('status');
|
|
131
|
+
}
|
|
132
|
+
case 'hippo_learn': {
|
|
133
|
+
const days = Number(args.days) || 7;
|
|
134
|
+
return runHippo(`learn --git --days ${days}`);
|
|
135
|
+
}
|
|
136
|
+
default:
|
|
137
|
+
return `Unknown tool: ${name}`;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
// ── Request handling ──
|
|
141
|
+
function handleRequest(req) {
|
|
142
|
+
const { id, method, params } = req;
|
|
143
|
+
switch (method) {
|
|
144
|
+
case 'initialize':
|
|
145
|
+
return {
|
|
146
|
+
jsonrpc: '2.0',
|
|
147
|
+
id,
|
|
148
|
+
result: {
|
|
149
|
+
protocolVersion: '2024-11-05',
|
|
150
|
+
capabilities: { tools: {} },
|
|
151
|
+
serverInfo: { name: 'hippo-memory', version: '0.4.0' },
|
|
152
|
+
},
|
|
153
|
+
};
|
|
154
|
+
case 'notifications/initialized':
|
|
155
|
+
// No response needed for notifications
|
|
156
|
+
return { jsonrpc: '2.0', id, result: {} };
|
|
157
|
+
case 'tools/list':
|
|
158
|
+
return { jsonrpc: '2.0', id, result: { tools: TOOLS } };
|
|
159
|
+
case 'tools/call': {
|
|
160
|
+
const toolName = params?.name;
|
|
161
|
+
const toolArgs = params?.arguments ?? {};
|
|
162
|
+
const output = executeTool(toolName, toolArgs);
|
|
163
|
+
return {
|
|
164
|
+
jsonrpc: '2.0',
|
|
165
|
+
id,
|
|
166
|
+
result: {
|
|
167
|
+
content: [{ type: 'text', text: output || 'Done.' }],
|
|
168
|
+
},
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
default:
|
|
172
|
+
return {
|
|
173
|
+
jsonrpc: '2.0',
|
|
174
|
+
id,
|
|
175
|
+
error: { code: -32601, message: `Method not found: ${method}` },
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
// ── Stdio transport ──
|
|
180
|
+
let buffer = '';
|
|
181
|
+
process.stdin.setEncoding('utf-8');
|
|
182
|
+
process.stdin.on('data', (chunk) => {
|
|
183
|
+
buffer += chunk;
|
|
184
|
+
while (true) {
|
|
185
|
+
const headerEnd = buffer.indexOf('\r\n\r\n');
|
|
186
|
+
if (headerEnd === -1)
|
|
187
|
+
break;
|
|
188
|
+
const header = buffer.slice(0, headerEnd);
|
|
189
|
+
const match = header.match(/Content-Length:\s*(\d+)/i);
|
|
190
|
+
if (!match) {
|
|
191
|
+
buffer = buffer.slice(headerEnd + 4);
|
|
192
|
+
continue;
|
|
193
|
+
}
|
|
194
|
+
const contentLength = parseInt(match[1], 10);
|
|
195
|
+
const bodyStart = headerEnd + 4;
|
|
196
|
+
if (buffer.length < bodyStart + contentLength)
|
|
197
|
+
break;
|
|
198
|
+
const body = buffer.slice(bodyStart, bodyStart + contentLength);
|
|
199
|
+
buffer = buffer.slice(bodyStart + contentLength);
|
|
200
|
+
try {
|
|
201
|
+
const req = JSON.parse(body);
|
|
202
|
+
if (req.method && !req.method.startsWith('notifications/')) {
|
|
203
|
+
const res = handleRequest(req);
|
|
204
|
+
send(res);
|
|
205
|
+
}
|
|
206
|
+
else if (req.method) {
|
|
207
|
+
handleRequest(req); // handle but don't send response for notifications
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
catch (err) {
|
|
211
|
+
// Skip malformed messages
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
});
|
|
215
|
+
process.stdin.on('end', () => process.exit(0));
|
|
216
|
+
// Prevent unhandled errors from crashing the server
|
|
217
|
+
process.on('uncaughtException', () => { });
|
|
218
|
+
process.on('unhandledRejection', () => { });
|
|
219
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
|