memory-eternal 0.17.0 → 0.18.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.
@@ -1,27 +1,27 @@
1
- {
2
- "$schema": "https://anthropic.com/claude-code/plugin.schema.json",
3
- "name": "memory-eternal",
4
- "version": "0.17.0",
5
- "description": "记忆核心(Memory Eternal):对话结束后自动沉淀知识卡到本地记忆库(~/.dsh/memory-vault),支持检索 / 召回 / 审核中心。",
6
- "author": {
7
- "name": "EternalNight996",
8
- "url": "https://github.com/EternalNight996"
9
- },
10
- "license": "MIT",
11
- "hooks": {
12
- "source": "./hooks/hooks.claude.json"
13
- },
14
- "skills": [
15
- "./skills/"
16
- ],
17
- "mcp_servers": [
18
- {
19
- "name": "memory",
20
- "command": "node",
21
- "args": [
22
- "${CLAUDE_PLUGIN_ROOT}/bin/dsh-memory.mjs",
23
- "mcp"
24
- ]
25
- }
26
- ]
27
- }
1
+ {
2
+ "$schema": "https://anthropic.com/claude-code/plugin.schema.json",
3
+ "name": "memory-eternal",
4
+ "version": "0.18.1",
5
+ "description": "记忆核心(Memory Eternal):对话结束后自动沉淀知识卡到本地记忆库(~/.dsh/memory-vault),支持检索 / 召回 / 审核中心。",
6
+ "author": {
7
+ "name": "EternalNight996",
8
+ "url": "https://github.com/EternalNight996"
9
+ },
10
+ "license": "MIT",
11
+ "hooks": {
12
+ "source": "./hooks/hooks.claude.json"
13
+ },
14
+ "skills": [
15
+ "./skills/"
16
+ ],
17
+ "mcp_servers": [
18
+ {
19
+ "name": "memory",
20
+ "command": "node",
21
+ "args": [
22
+ "${CLAUDE_PLUGIN_ROOT}/bin/dsh-memory.mjs",
23
+ "mcp"
24
+ ]
25
+ }
26
+ ]
27
+ }
@@ -1,24 +1,24 @@
1
- {
2
- "name": "memory-eternal",
3
- "version": "0.17.0",
4
- "description": "记忆核心(Memory Eternal):对话结束后自动沉淀知识卡到本地记忆库(~/.dsh/memory-vault),支持检索 / 召回 / 审核中心。",
5
- "author": {
6
- "name": "EternalNight996",
7
- "url": "https://github.com/EternalNight996"
8
- },
9
- "license": "MIT",
10
- "keywords": [
11
- "deepseek-harness",
12
- "dsh-plugin",
13
- "memory",
14
- "knowledge-base",
15
- "mcp",
16
- "markdown",
17
- "vault"
18
- ],
19
- "homepage": "https://github.com/EternalNight996/dsh-memory-eternal",
20
- "repository": "https://github.com/EternalNight996/dsh-memory-eternal",
21
- "skills": "./skills/",
22
- "mcpServers": "./.mcp.json",
23
- "hooks": "./hooks/hooks.codex.json"
24
- }
1
+ {
2
+ "name": "memory-eternal",
3
+ "version": "0.18.1",
4
+ "description": "记忆核心(Memory Eternal):对话结束后自动沉淀知识卡到本地记忆库(~/.dsh/memory-vault),支持检索 / 召回 / 审核中心。",
5
+ "author": {
6
+ "name": "EternalNight996",
7
+ "url": "https://github.com/EternalNight996"
8
+ },
9
+ "license": "MIT",
10
+ "keywords": [
11
+ "deepseek-harness",
12
+ "dsh-plugin",
13
+ "memory",
14
+ "knowledge-base",
15
+ "mcp",
16
+ "markdown",
17
+ "vault"
18
+ ],
19
+ "homepage": "https://github.com/EternalNight996/dsh-memory-eternal",
20
+ "repository": "https://github.com/EternalNight996/dsh-memory-eternal",
21
+ "skills": "./skills/",
22
+ "mcpServers": "./.mcp.json",
23
+ "hooks": "./hooks/hooks.codex.json"
24
+ }
@@ -1,14 +1,14 @@
1
- {
2
- "name": "memory-eternal",
3
- "version": "0.17.0",
4
- "description": "记忆核心(Memory Eternal):对话结束后自动沉淀知识卡到本地记忆库(~/.dsh/memory-vault),支持检索 / 召回 / 审核中心。",
5
- "author": {
6
- "name": "EternalNight996",
7
- "url": "https://github.com/EternalNight996"
8
- },
9
- "license": "MIT",
10
- "homepage": "https://github.com/EternalNight996/dsh-memory-eternal",
11
- "repository": "https://github.com/EternalNight996/dsh-memory-eternal",
12
- "mcpServers": "./.mcp.json",
13
- "hooks": "./hooks/hooks.cursor.json"
14
- }
1
+ {
2
+ "name": "memory-eternal",
3
+ "version": "0.18.1",
4
+ "description": "记忆核心(Memory Eternal):对话结束后自动沉淀知识卡到本地记忆库(~/.dsh/memory-vault),支持检索 / 召回 / 审核中心。",
5
+ "author": {
6
+ "name": "EternalNight996",
7
+ "url": "https://github.com/EternalNight996"
8
+ },
9
+ "license": "MIT",
10
+ "homepage": "https://github.com/EternalNight996/dsh-memory-eternal",
11
+ "repository": "https://github.com/EternalNight996/dsh-memory-eternal",
12
+ "mcpServers": "./.mcp.json",
13
+ "hooks": "./hooks/hooks.cursor.json"
14
+ }
package/README.md CHANGED
@@ -1,138 +1,138 @@
1
- # 🧠 memory-eternal — a second brain for your AI
2
-
3
- [![GitHub stars](https://img.shields.io/github/stars/EternalNight996/memory-eternal?style=flat)](https://github.com/EternalNight996/memory-eternal/stargazers)
4
- [![npm](https://img.shields.io/npm/v/memory-eternal)](https://www.npmjs.com/package/memory-eternal)
5
- [![release](https://img.shields.io/badge/release-v0.17.0-FF7A45)](https://github.com/EternalNight996/memory-eternal/releases)
6
- [![license](https://img.shields.io/badge/license-MIT-blue)](LICENSE)
7
-
8
- **English (default)** · [简体中文](README.zh-CN.md)
9
-
10
- <p align="center">
11
- <a href="https://eternalnight996.github.io/memory-eternal/demo/"><img src="https://raw.githubusercontent.com/EternalNight996/memory-eternal/main/assets/screen/demo.gif" width="900" alt="memory-eternal 20-second tour: review queue, token ledger, knowledge graph" /></a>
12
- </p>
13
- <p align="center"><sub>▲ 20-second tour — review queue · token ledger · knowledge graph · <a href="https://eternalnight996.github.io/memory-eternal/demo/">live demo</a></sub></p>
14
-
15
- > **Your AI forgets every session. Give it a memory it can trust.**
16
- >
17
- > Local-first, review-gated, measurable — one SQLite vault shared by DSH, Claude Code, Codex, Cursor and any MCP client.
18
-
19
- - 🔍 **Review before it counts** — new cards wait in a review queue; approve or reject from the Web UI or terminal; every change is written to an immutable audit log.
20
- - 🧾 **Token ledger** — see how much recall injected, how many distillation calls ran, and how often recall was actually useful.
21
- - 🏠 **Local-first, no cloud** — SQLite + Markdown on your own disk. No third-party memory framework, no account, no outbound calls.
22
-
23
- <p align="center"><strong>⭐ If it saves you from explaining the same context again, a star helps a lot.</strong><br/><sub>DSH one-liner: <code>dsh plugin --profile desktop add memory-eternal</code></sub></p>
24
-
25
- ## ⚡ Quick start
26
-
27
- **DeepSeek Harness (desktop / web)**
28
-
29
- ```bash
30
- dsh plugin --profile desktop add memory-eternal
31
- # reopen DSH → sidebar "Memory"
32
- ```
33
-
34
- **Claude Code, Codex or Cursor — same vault via MCP**
35
-
36
- ```bash
37
- npm i -g memory-eternal
38
- dsh-memory connect claude # or: codex / cursor
39
- ```
40
-
41
- **Any MCP client**
42
-
43
- ```bash
44
- npx -y -p memory-eternal dsh-memory mcp
45
- ```
46
-
47
- **Browser or terminal**
48
-
49
- ```bash
50
- dsh-memory open # http://127.0.0.1:7999
51
- npx -y -p memory-eternal dsh-memory tui # live queue in the terminal
52
- ```
53
-
54
- ## 🧾 Does it actually save tokens?
55
-
56
- Most memory products <em>say</em> they save tokens. We think you should check. The plugin ships a built-in **memory ledger** (Runtime status → Memory ledger) that records:
57
-
58
- | Recorded | What it means |
59
- |---|---|
60
- | recall: hits + injected characters | how much memory actually entered the context |
61
- | capture: LLM calls + input/output characters | what distillation cost you |
62
- | usefulness: useful / not-useful feedback | whether recalled memories actually helped |
63
-
64
- The honest math:
65
-
66
- ```text
67
- net benefit ≈ avoided context cost − (injected characters + distillation calls × price)
68
- ```
69
-
70
- | Scenario | You pay | You avoid |
71
- |---|---|---|
72
- | Multi-session project with decisions and pitfalls | ~0.6–0.9k tokens per recall | re-explaining context (~1.5–3k) or re-reading files (3–6k) |
73
- | One-off question, low hit rate | recall injection | usually nothing |
74
-
75
- > Illustrative numbers, not a benchmark — measure your own with the ledger. If recall usefulness stays below ~60%, tune it down (fewer results, shorter summaries) or turn memory off.
76
-
77
- ## 🛡️ Review first, prove later
78
-
79
- A memory system that silently ingests everything will eventually recall a wrong fact as truth. memory-eternal defaults to **review-before-commit**:
80
-
81
- - new cards land in a **pending queue**; nothing enters the main vault until a human approves it;
82
- - approve, reject or bulk-process from the Web UI, the terminal TUI, or the CLI;
83
- - every status change is appended to an **immutable audit log** (who / what / when / why) — enforced at the SQLite layer, not by convention;
84
- - agents can read and propose, but **cannot approve their own cards**;
85
- - deleted cards go to a recycle bin (30 days by default).
86
-
87
- ## 🧩 One vault, every agent
88
-
89
- | Entry | What you get |
90
- |---|---|
91
- | **DSH desktop / web** | embedded memory UI: review, graph, config, ledger |
92
- | **Claude Code / Codex / Cursor** | MCP server, same local vault, <code>dsh-memory connect</code> |
93
- | **Any MCP client** | <code>npx -y -p memory-eternal dsh-memory mcp</code> |
94
- | **Terminal** | <code>dsh-memory tui</code> — live queue, select-all, batch approve/reject, long-form reader |
95
- | **Browser** | <code>dsh-memory open</code> → http://127.0.0.1:7999 |
96
-
97
- ## 📸 Screenshots
98
-
99
- <p align="center">
100
- <img src="https://raw.githubusercontent.com/EternalNight996/memory-eternal/main/assets/screen/graph-en.png" width="32%" alt="Knowledge graph: clusters by kind, tag edges" />
101
- <img src="https://raw.githubusercontent.com/EternalNight996/memory-eternal/main/assets/screen/audit-en.png" width="32%" alt="Review inbox: type bar, queue and verdict pane" />
102
- <img src="https://raw.githubusercontent.com/EternalNight996/memory-eternal/main/assets/screen/status-en.png" width="32%" alt="Runtime status: database, backups, capture, version" />
103
- </p>
104
- <p align="center"><sub>▲ Knowledge graph · review inbox · runtime status</sub></p>
105
-
106
- <p align="center">
107
- <img src="https://raw.githubusercontent.com/EternalNight996/memory-eternal/main/assets/screen/tui-audit.png" width="49%" alt="Native terminal audit: select-all, batch approve/reject" />
108
- <img src="https://raw.githubusercontent.com/EternalNight996/memory-eternal/main/assets/screen/tui-reader.png" width="49%" alt="Native terminal long-form reader" />
109
- </p>
110
- <p align="center"><sub>▲ Terminal-native review and long-form reading — <code>dsh-memory tui</code></sub></p>
111
-
112
- ## 📚 Documentation & links
113
-
114
- - [Full manual (English)](docs/GUIDE.md) · [完整手册(中文)](docs/GUIDE.zh-CN.md)
115
- - [Private deployment (Docker / systemd)](docs/DEPLOY.md)
116
- - [Changelog](docs/CHANGELOG.md) · [Architecture](docs/ARCHITECTURE.md)
117
- - [Terminal plugin (dsh-tui)](dsh-tui-plugin/README.md) · [Orca launcher](orca-plugin/README.md) · [Cursor / VS Code extension](cursor-extension/README.md)
118
- - [Report a bug](https://github.com/EternalNight996/memory-eternal/issues)
119
-
120
- ## 💬 Community
121
-
122
- **Questions, ideas, or DSH plugin talk — join the groups:**
123
-
124
- | QQ group | WeChat group |
125
- |:---:|:---:|
126
- | <img src="https://raw.githubusercontent.com/EternalNight996/memory-eternal/main/assets/support/group-qr.jpg" width="240" alt="QQ group QR" /> | <img src="https://raw.githubusercontent.com/EternalNight996/memory-eternal/main/assets/support/group-wechat.png" width="240" alt="WeChat group QR" /> |
127
-
128
- **Buy the author a coffee (optional):**
129
-
130
- | WeChat Pay | WeChat Reward |
131
- |:---:|:---:|
132
- | <img src="https://raw.githubusercontent.com/EternalNight996/memory-eternal/main/assets/support/wechat-pay.jpg" width="200" alt="WeChat Pay QR" /> | <img src="https://raw.githubusercontent.com/EternalNight996/memory-eternal/main/assets/support/wechat-reward.jpg" width="200" alt="WeChat Reward QR" /> |
133
-
134
- > Sponsorship is optional; the plugin stays MIT and free. See [SPONSOR.md](SPONSOR.md).
135
-
136
- ## 📄 License
137
-
138
- MIT — use it, self-host it, build on it.
1
+ # 🧠 memory-eternal — a second brain for your AI
2
+
3
+ [![GitHub stars](https://img.shields.io/github/stars/EternalNight996/memory-eternal?style=flat)](https://github.com/EternalNight996/memory-eternal/stargazers)
4
+ [![npm](https://img.shields.io/npm/v/memory-eternal)](https://www.npmjs.com/package/memory-eternal)
5
+ [![release](https://img.shields.io/badge/release-v0.18.1-FF7A45)](https://github.com/EternalNight996/memory-eternal/releases)
6
+ [![license](https://img.shields.io/badge/license-MIT-blue)](LICENSE)
7
+
8
+ **English (default)** · [简体中文](README.zh-CN.md)
9
+
10
+ <p align="center">
11
+ <a href="https://eternalnight996.github.io/memory-eternal/demo/"><img src="https://raw.githubusercontent.com/EternalNight996/memory-eternal/main/assets/screen/demo.gif" width="900" alt="memory-eternal 20-second tour: review queue, token ledger, knowledge graph" /></a>
12
+ </p>
13
+ <p align="center"><sub>▲ 20-second tour — review queue · token ledger · knowledge graph · <a href="https://eternalnight996.github.io/memory-eternal/demo/">live demo</a></sub></p>
14
+
15
+ > **Your AI forgets every session. Give it a memory it can trust.**
16
+ >
17
+ > Local-first, review-gated, measurable — one SQLite vault shared by DSH, Claude Code, Codex, Cursor and any MCP client.
18
+
19
+ - 🔍 **Review before it counts** — new cards wait in a review queue; approve or reject from the Web UI or terminal; every change is written to an immutable audit log.
20
+ - 🧾 **Token ledger** — see how much recall injected, how many distillation calls ran, and how often recall was actually useful.
21
+ - 🏠 **Local-first, no cloud** — SQLite + Markdown on your own disk. No third-party memory framework, no account, no outbound calls.
22
+
23
+ <p align="center"><strong>⭐ If it saves you from explaining the same context again, a star helps a lot.</strong><br/><sub>DSH one-liner: <code>dsh plugin --profile desktop add memory-eternal</code></sub></p>
24
+
25
+ ## ⚡ Quick start
26
+
27
+ **DeepSeek Harness (desktop / web)**
28
+
29
+ ```bash
30
+ dsh plugin --profile desktop add memory-eternal
31
+ # reopen DSH → sidebar "Memory"
32
+ ```
33
+
34
+ **Claude Code, Codex or Cursor — same vault via MCP**
35
+
36
+ ```bash
37
+ npm i -g memory-eternal
38
+ dsh-memory connect claude # or: codex / cursor
39
+ ```
40
+
41
+ **Any MCP client**
42
+
43
+ ```bash
44
+ npx -y -p memory-eternal dsh-memory mcp
45
+ ```
46
+
47
+ **Browser or terminal**
48
+
49
+ ```bash
50
+ dsh-memory open # http://127.0.0.1:7999
51
+ npx -y -p memory-eternal dsh-memory tui # live queue in the terminal
52
+ ```
53
+
54
+ ## 🧾 Does it actually save tokens?
55
+
56
+ Most memory products <em>say</em> they save tokens. We think you should check. The plugin ships a built-in **memory ledger** (Runtime status → Memory ledger) that records:
57
+
58
+ | Recorded | What it means |
59
+ |---|---|
60
+ | recall: hits + injected characters | how much memory actually entered the context |
61
+ | capture: LLM calls + input/output characters | what distillation cost you |
62
+ | usefulness: useful / not-useful feedback | whether recalled memories actually helped |
63
+
64
+ The honest math:
65
+
66
+ ```text
67
+ net benefit ≈ avoided context cost − (injected characters + distillation calls × price)
68
+ ```
69
+
70
+ | Scenario | You pay | You avoid |
71
+ |---|---|---|
72
+ | Multi-session project with decisions and pitfalls | ~0.6–0.9k tokens per recall | re-explaining context (~1.5–3k) or re-reading files (3–6k) |
73
+ | One-off question, low hit rate | recall injection | usually nothing |
74
+
75
+ > Illustrative numbers, not a benchmark — measure your own with the ledger. If recall usefulness stays below ~60%, tune it down (fewer results, shorter summaries) or turn memory off.
76
+
77
+ ## 🛡️ Review first, prove later
78
+
79
+ A memory system that silently ingests everything will eventually recall a wrong fact as truth. memory-eternal defaults to **review-before-commit**:
80
+
81
+ - new cards land in a **pending queue**; nothing enters the main vault until a human approves it;
82
+ - approve, reject or bulk-process from the Web UI, the terminal TUI, or the CLI;
83
+ - every status change is appended to an **immutable audit log** (who / what / when / why) — enforced at the SQLite layer, not by convention;
84
+ - agents can read and propose, but **cannot approve their own cards**;
85
+ - deleted cards go to a recycle bin (30 days by default).
86
+
87
+ ## 🧩 One vault, every agent
88
+
89
+ | Entry | What you get |
90
+ |---|---|
91
+ | **DSH desktop / web** | embedded memory UI: review, graph, config, ledger |
92
+ | **Claude Code / Codex / Cursor** | MCP server, same local vault, <code>dsh-memory connect</code> |
93
+ | **Any MCP client** | <code>npx -y -p memory-eternal dsh-memory mcp</code> |
94
+ | **Terminal** | <code>dsh-memory tui</code> — live queue, select-all, batch approve/reject, long-form reader |
95
+ | **Browser** | <code>dsh-memory open</code> → http://127.0.0.1:7999 |
96
+
97
+ ## 📸 Screenshots
98
+
99
+ <p align="center">
100
+ <img src="https://raw.githubusercontent.com/EternalNight996/memory-eternal/main/assets/screen/graph-en.png" width="32%" alt="Knowledge graph: clusters by kind, tag edges" />
101
+ <img src="https://raw.githubusercontent.com/EternalNight996/memory-eternal/main/assets/screen/audit-en.png" width="32%" alt="Review inbox: type bar, queue and verdict pane" />
102
+ <img src="https://raw.githubusercontent.com/EternalNight996/memory-eternal/main/assets/screen/status-en.png" width="32%" alt="Runtime status: database, backups, capture, version" />
103
+ </p>
104
+ <p align="center"><sub>▲ Knowledge graph · review inbox · runtime status</sub></p>
105
+
106
+ <p align="center">
107
+ <img src="https://raw.githubusercontent.com/EternalNight996/memory-eternal/main/assets/screen/tui-audit.png" width="49%" alt="Native terminal audit: select-all, batch approve/reject" />
108
+ <img src="https://raw.githubusercontent.com/EternalNight996/memory-eternal/main/assets/screen/tui-reader.png" width="49%" alt="Native terminal long-form reader" />
109
+ </p>
110
+ <p align="center"><sub>▲ Terminal-native review and long-form reading — <code>dsh-memory tui</code></sub></p>
111
+
112
+ ## 📚 Documentation & links
113
+
114
+ - [Full manual (English)](docs/GUIDE.md) · [完整手册(中文)](docs/GUIDE.zh-CN.md)
115
+ - [Private deployment (Docker / systemd)](docs/DEPLOY.md)
116
+ - [Changelog](docs/CHANGELOG.md) · [Architecture](docs/ARCHITECTURE.md)
117
+ - [Terminal plugin (dsh-tui)](dsh-tui-plugin/README.md) · [Orca launcher](orca-plugin/README.md) · [Cursor / VS Code extension](cursor-extension/README.md)
118
+ - [Report a bug](https://github.com/EternalNight996/memory-eternal/issues)
119
+
120
+ ## 💬 Community
121
+
122
+ **Questions, ideas, or DSH plugin talk — join the groups:**
123
+
124
+ | QQ group | WeChat group |
125
+ |:---:|:---:|
126
+ | <img src="https://raw.githubusercontent.com/EternalNight996/memory-eternal/main/assets/support/group-qr.jpg" width="240" alt="QQ group QR" /> | <img src="https://raw.githubusercontent.com/EternalNight996/memory-eternal/main/assets/support/group-wechat.png" width="240" alt="WeChat group QR" /> |
127
+
128
+ **Buy the author a coffee (optional):**
129
+
130
+ | WeChat Pay | WeChat Reward |
131
+ |:---:|:---:|
132
+ | <img src="https://raw.githubusercontent.com/EternalNight996/memory-eternal/main/assets/support/wechat-pay.jpg" width="200" alt="WeChat Pay QR" /> | <img src="https://raw.githubusercontent.com/EternalNight996/memory-eternal/main/assets/support/wechat-reward.jpg" width="200" alt="WeChat Reward QR" /> |
133
+
134
+ > Sponsorship is optional; the plugin stays MIT and free. See [SPONSOR.md](SPONSOR.md).
135
+
136
+ ## 📄 License
137
+
138
+ MIT — use it, self-host it, build on it.