memory-eternal 0.30.5 → 0.31.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/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/.cursor-plugin/plugin.json +1 -1
- package/README.md +17 -1
- package/README.zh-CN.md +17 -1
- package/cursor-extension/package.json +1 -1
- package/dsh-tui-plugin/dsh-plugin.json +1 -1
- package/dsh-tui-plugin/package.json +1 -1
- package/index.js +3 -1
- package/lib/api.js +1 -1
- package/lib/client.js +915 -21
- package/orca-plugin/orca-plugin.json +1 -1
- package/package.json +1 -1
- package/web/app.js +922 -28
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://anthropic.com/claude-code/plugin.schema.json",
|
|
3
3
|
"name": "memory-eternal",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.31.0",
|
|
5
5
|
"description": "记忆核心(Memory Eternal):对话结束后自动沉淀知识卡到本地记忆库(~/.dsh/memory-vault),支持检索 / 召回 / 审核中心。",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "EternalNight996",
|
package/README.md
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
|
|
16
16
|
[](https://github.com/EternalNight996/memory-eternal/stargazers)
|
|
17
17
|
[](https://www.npmjs.com/package/memory-eternal)
|
|
18
|
-
[](https://github.com/EternalNight996/memory-eternal/releases)
|
|
19
19
|
[](LICENSE)
|
|
20
20
|
|
|
21
21
|
**English (default)** · [简体中文](README.zh-CN.md)
|
|
@@ -227,6 +227,22 @@ Not everything should be injected into every session. Core memory is the small,
|
|
|
227
227
|
| **Terminal** | <code>dsh-memory tui</code> — live queue, select-all, batch approve/reject, long-form reader |
|
|
228
228
|
| **Browser** | <code>dsh-memory open</code> → http://127.0.0.1:7999 |
|
|
229
229
|
|
|
230
|
+
## 🎨 Skins
|
|
231
|
+
|
|
232
|
+
Five skins, switch in Settings → General → Theme with one click. The choice is saved locally and survives reloads.
|
|
233
|
+
|
|
234
|
+
<p align="center">
|
|
235
|
+
<img src="assets/screen/skins-gallery.png" width="900" alt="Five themes: Default, Pop, Light, Resident Evil and Spider-Man" />
|
|
236
|
+
</p>
|
|
237
|
+
|
|
238
|
+
| Skin | Style |
|
|
239
|
+
| --- | --- |
|
|
240
|
+
| **Default** | Dark base + amber accent, easy on the eyes |
|
|
241
|
+
| **Pop** | Yellow paper, black frames, hard shadows and halftone |
|
|
242
|
+
| **Light** | Warm paper + serif headings for daytime |
|
|
243
|
+
| **Resident Evil** | Umbrella lab, toxic-green scanlines, B.O.W. banner and claw |
|
|
244
|
+
| **Spider-Man** | Red/blue comic, webs, halftone, wide action banner and hanging charm |
|
|
245
|
+
|
|
230
246
|
## 📸 Screenshots
|
|
231
247
|
|
|
232
248
|
<p align="center">
|
package/README.zh-CN.md
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
|
|
16
16
|
[](https://github.com/EternalNight996/memory-eternal/stargazers)
|
|
17
17
|
[](https://www.npmjs.com/package/memory-eternal)
|
|
18
|
-
[](https://github.com/EternalNight996/memory-eternal/releases)
|
|
19
19
|
[](LICENSE)
|
|
20
20
|
|
|
21
21
|
[English (default)](README.md) · **简体中文(镜像)**
|
|
@@ -227,6 +227,22 @@ dsh-memory ledger --days 30 --json # 召回注入 / 沉淀调用 / 有用
|
|
|
227
227
|
| **终端** | <code>dsh-memory tui</code> —— 实时队列、全选、批量批/驳、长文读卡 |
|
|
228
228
|
| **浏览器** | <code>dsh-memory open</code> → http://127.0.0.1:7999 |
|
|
229
229
|
|
|
230
|
+
## 🎨 皮肤 / Skins
|
|
231
|
+
|
|
232
|
+
五套皮肤,设置 → 通用 → 主题皮肤一键切换;选择会本地保存,刷新后保持。
|
|
233
|
+
|
|
234
|
+
<p align="center">
|
|
235
|
+
<img src="assets/screen/skins-gallery.png" width="900" alt="五种主题皮肤:默认暗色、波普、明亮、生化危机、蜘蛛侠" />
|
|
236
|
+
</p>
|
|
237
|
+
|
|
238
|
+
| 皮肤 | 风格 |
|
|
239
|
+
| --- | --- |
|
|
240
|
+
| **默认暗色** | 深色底 + 琥珀强调,长时间阅读不刺眼 |
|
|
241
|
+
| **波普 Pop** | 黄底黑框、硬阴影、半调与粗黑标题 |
|
|
242
|
+
| **明亮 Light** | 暖纸面 + 衬线标题,适合白天 |
|
|
243
|
+
| **生化危机** | Umbrella 实验室、毒绿扫描线、B.O.W. 头图与巨爪 |
|
|
244
|
+
| **蜘蛛侠** | 红蓝漫画、蛛网、半调、横版动作头图与悬吊挂件 |
|
|
245
|
+
|
|
230
246
|
## 📸 截图
|
|
231
247
|
|
|
232
248
|
<p align="center">
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "memory-eternal",
|
|
3
3
|
"displayName": "Memory Atlas",
|
|
4
4
|
"description": "Memory-eternal: open the local Memory Atlas library, review queue and knowledge graph in a Cursor/VS Code webview.",
|
|
5
|
-
"version": "0.
|
|
5
|
+
"version": "0.31.0",
|
|
6
6
|
"publisher": "EternalNight996",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"repository": {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "urn:dsh-std:community-draft:dsh-plugin:0.15",
|
|
3
3
|
"id": "memory-eternal-tui",
|
|
4
4
|
"name": "memory-eternal-tui",
|
|
5
|
-
"version": "0.
|
|
5
|
+
"version": "0.31.0",
|
|
6
6
|
"manifestVersion": "0.15",
|
|
7
7
|
"description": "Open Memory Atlas from dsh-TUI: native /audit scene plus browser launcher.",
|
|
8
8
|
"facets": {
|
package/index.js
CHANGED
|
@@ -73,6 +73,8 @@ export const Config = z.object({
|
|
|
73
73
|
skillCardsAutoSync: z.boolean().default(true),
|
|
74
74
|
// 记忆界面整体布局大小:compact / normal / large(只影响 UI,不影响召回)
|
|
75
75
|
uiScale: z.union([z.const('compact'), z.const('normal'), z.const('large')]).default('normal'),
|
|
76
|
+
// 主题皮肤:一键切换整个记忆界面(含设置页)。新增皮肤时在这里登记 id,并在 src/client 的 CSS 里加 [data-skin="id"] 块。
|
|
77
|
+
theme: z.union([z.const('default'), z.const('pop'), z.const('light'), z.const('resident'), z.const('spider')]).default('default'),
|
|
76
78
|
vaultDir: z.string().default(''),
|
|
77
79
|
dedupThreshold: z.number().min(0).max(1).default(0.62),
|
|
78
80
|
captureMinChars: z.number().default(200),
|
|
@@ -1554,7 +1556,7 @@ export function apply(ctx, config) {
|
|
|
1554
1556
|
const cfg = settings.get() ?? {}
|
|
1555
1557
|
// 只暴露可安全展示/回填的字段
|
|
1556
1558
|
const safe = {
|
|
1557
|
-
autoCapture: cfg.autoCapture, autoRecall: cfg.autoRecall, coreMemoryEnabled: cfg.coreMemoryEnabled, workingMemoryEnabled: cfg.workingMemoryEnabled, coreMemoryLimit: cfg.coreMemoryLimit, coreMemoryMaxChars: cfg.coreMemoryMaxChars, uiScale: cfg.uiScale, recallLimit: cfg.recallLimit, recallSummaryLen: cfg.recallSummaryLen, recallIncludeBody: cfg.recallIncludeBody, secretHint: cfg.secretHint || '',
|
|
1559
|
+
autoCapture: cfg.autoCapture, autoRecall: cfg.autoRecall, coreMemoryEnabled: cfg.coreMemoryEnabled, workingMemoryEnabled: cfg.workingMemoryEnabled, coreMemoryLimit: cfg.coreMemoryLimit, coreMemoryMaxChars: cfg.coreMemoryMaxChars, uiScale: cfg.uiScale, theme: cfg.theme, recallLimit: cfg.recallLimit, recallSummaryLen: cfg.recallSummaryLen, recallIncludeBody: cfg.recallIncludeBody, secretHint: cfg.secretHint || '',
|
|
1558
1560
|
captureMinChars: cfg.captureMinChars, captureCooldownMs: cfg.captureCooldownMs, dedupThreshold: cfg.dedupThreshold, maxCardsPerDay: cfg.maxCardsPerDay,
|
|
1559
1561
|
distillEnabled: cfg.distillEnabled, dedupByLLM: cfg.dedupByLLM, captureMaxTokens: cfg.captureMaxTokens, recallMinScore: cfg.recallMinScore,
|
|
1560
1562
|
autoWeb: cfg.autoWeb, autoWebMode: cfg.autoWebMode, webPort: cfg.webPort, webCheckIntervalMs: cfg.webCheckIntervalMs, webMaxRestart: cfg.webMaxRestart, watchdogAutoSpawn: cfg.watchdogAutoSpawn, autoRestartOnDrift: cfg.autoRestartOnDrift, autoMcpSetup: cfg.autoMcpSetup,
|
package/lib/api.js
CHANGED
|
@@ -1429,7 +1429,7 @@ export function createApi(deps = {}) {
|
|
|
1429
1429
|
const cfg = getSettings() ?? {}
|
|
1430
1430
|
const env = typeof process !== 'undefined' ? process.env : {}
|
|
1431
1431
|
const safe = {
|
|
1432
|
-
autoCapture: cfg.autoCapture ?? true, autoRecall: cfg.autoRecall ?? true, coreMemoryEnabled: cfg.coreMemoryEnabled ?? true, workingMemoryEnabled: cfg.workingMemoryEnabled ?? true, coreMemoryLimit: cfg.coreMemoryLimit ?? 6, coreMemoryMaxChars: cfg.coreMemoryMaxChars ?? 2000, uiScale: cfg.uiScale || 'normal', recallLimit: cfg.recallLimit ?? 5, recallSummaryLen: cfg.recallSummaryLen ?? 130, recallIncludeBody: cfg.recallIncludeBody ?? false, secretHint: cfg.secretHint || '',
|
|
1432
|
+
autoCapture: cfg.autoCapture ?? true, autoRecall: cfg.autoRecall ?? true, coreMemoryEnabled: cfg.coreMemoryEnabled ?? true, workingMemoryEnabled: cfg.workingMemoryEnabled ?? true, coreMemoryLimit: cfg.coreMemoryLimit ?? 6, coreMemoryMaxChars: cfg.coreMemoryMaxChars ?? 2000, uiScale: cfg.uiScale || 'normal', theme: cfg.theme || 'default', recallLimit: cfg.recallLimit ?? 5, recallSummaryLen: cfg.recallSummaryLen ?? 130, recallIncludeBody: cfg.recallIncludeBody ?? false, secretHint: cfg.secretHint || '',
|
|
1433
1433
|
captureMinChars: cfg.captureMinChars ?? 200, captureCooldownMs: cfg.captureCooldownMs ?? 300000, dedupThreshold: cfg.dedupThreshold ?? 0.62, maxCardsPerDay: cfg.maxCardsPerDay ?? 60,
|
|
1434
1434
|
distillEnabled: cfg.distillEnabled ?? true, dedupByLLM: cfg.dedupByLLM ?? true, captureMaxTokens: cfg.captureMaxTokens ?? DEFAULT_CAPTURE_MAX_TOKENS, recallMinScore: cfg.recallMinScore ?? 2,
|
|
1435
1435
|
autoWeb: cfg.autoWeb ?? env.MEMORY_AUTO_WEB !== '0', autoWebMode: cfg.autoWebMode || 'init', webPort: Number(cfg.webPort) || Number(env.MEMORY_WEB_PORT) || 7999, webCheckIntervalMs: Number(cfg.webCheckIntervalMs) || 5000, webMaxRestart: Number(cfg.webMaxRestart) || 10, watchdogAutoSpawn: cfg.watchdogAutoSpawn ?? env.MEMORY_WATCHDOG === '1', autoRestartOnDrift: cfg.autoRestartOnDrift ?? true, autoMcpSetup: cfg.autoMcpSetup ?? false,
|