memory-eternal 0.24.0 → 0.25.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.
@@ -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.24.0",
4
+ "version": "0.25.0",
5
5
  "description": "记忆核心(Memory Eternal):对话结束后自动沉淀知识卡到本地记忆库(~/.dsh/memory-vault),支持检索 / 召回 / 审核中心。",
6
6
  "author": {
7
7
  "name": "EternalNight996",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "memory-eternal",
3
- "version": "0.24.0",
3
+ "version": "0.25.0",
4
4
  "description": "记忆核心(Memory Eternal):对话结束后自动沉淀知识卡到本地记忆库(~/.dsh/memory-vault),支持检索 / 召回 / 审核中心。",
5
5
  "author": {
6
6
  "name": "EternalNight996",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "memory-eternal",
3
- "version": "0.24.0",
3
+ "version": "0.25.0",
4
4
  "description": "记忆核心(Memory Eternal):对话结束后自动沉淀知识卡到本地记忆库(~/.dsh/memory-vault),支持检索 / 召回 / 审核中心。",
5
5
  "author": {
6
6
  "name": "EternalNight996",
package/README.md CHANGED
@@ -1,8 +1,14 @@
1
1
  # 🧠 memory-eternal — a second brain for your AI
2
2
 
3
+ <p align="center">
4
+ <img src="https://raw.githubusercontent.com/EternalNight996/memory-eternal/main/assets/screen/cover-zh.png" width="900" alt="记忆核心 memory-eternal:给 AI 一个不会忘、可审核、可量化的长期记忆" />
5
+ </p>
6
+
7
+ **记忆核心(memory-eternal)** —— 给 AI 一个不会忘、可审核、可量化的长期记忆。本地优先 · 审核闸门 · 记忆账本 · 一个库接入 DSH / Claude Code / Codex / Cursor 与任意 MCP 客户端。
8
+
3
9
  [![GitHub stars](https://img.shields.io/github/stars/EternalNight996/memory-eternal?style=flat)](https://github.com/EternalNight996/memory-eternal/stargazers)
4
10
  [![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.24.0-FF7A45)](https://github.com/EternalNight996/memory-eternal/releases)
11
+ [![release](https://img.shields.io/badge/release-v0.25.0-FF7A45)](https://github.com/EternalNight996/memory-eternal/releases)
6
12
  [![license](https://img.shields.io/badge/license-MIT-blue)](LICENSE)
7
13
 
8
14
  **English (default)** · [简体中文](README.zh-CN.md)
package/README.zh-CN.md CHANGED
@@ -1,8 +1,14 @@
1
1
  # 🧠 memory-eternal —— 给 AI 装一个可信的第二大脑
2
2
 
3
+ <p align="center">
4
+ <img src="https://raw.githubusercontent.com/EternalNight996/memory-eternal/main/assets/screen/cover-zh.png" width="900" alt="记忆核心 memory-eternal:给 AI 一个不会忘、可审核、可量化的长期记忆" />
5
+ </p>
6
+
7
+ **记忆核心(memory-eternal)** —— 给 AI 一个不会忘、可审核、可量化的长期记忆。本地优先 · 审核闸门 · 记忆账本 · 一个库接入 DSH / Claude Code / Codex / Cursor 与任意 MCP 客户端。
8
+
3
9
  [![GitHub stars](https://img.shields.io/github/stars/EternalNight996/memory-eternal?style=flat)](https://github.com/EternalNight996/memory-eternal/stargazers)
4
10
  [![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.24.0-FF7A45)](https://github.com/EternalNight996/memory-eternal/releases)
11
+ [![release](https://img.shields.io/badge/release-v0.25.0-FF7A45)](https://github.com/EternalNight996/memory-eternal/releases)
6
12
  [![license](https://img.shields.io/badge/license-MIT-blue)](LICENSE)
7
13
 
8
14
  [English (default)](README.md) · **简体中文(镜像)**
@@ -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.24.0",
5
+ "version": "0.25.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.24.0",
5
+ "version": "0.25.0",
6
6
  "manifestVersion": "0.15",
7
7
  "description": "Open Memory Atlas from dsh-TUI: native /audit scene plus browser launcher.",
8
8
  "facets": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "memory-eternal-tui",
3
- "version": "0.24.0",
3
+ "version": "0.25.0",
4
4
  "description": "Memory Atlas for dsh-TUI: /audit scene with reason/severity, batch confirmation and reject reasons.",
5
5
  "type": "module",
6
6
  "main": "main.js",
package/lib/api.js CHANGED
@@ -24,6 +24,7 @@ import { FOLLOW_DOMAINS, parseFollowIntent, listFollows, saveFollow, removeFollo
24
24
  import { buildDigest, readDigest, digestPrompt } from './news-digest.js'
25
25
  import { getSetupStatus, runSetup, mcpAgentAction } from './setup.js'
26
26
  import { ledgerSummary } from './ledger.js'
27
+ import { starPromptStatus, markStarAction } from './star-prompt.js'
27
28
  import { backupDb, dbStatus, rebuildGuidance, withDbRetry } from './db.js'
28
29
  import { listNews, getNews, saveNews, deleteNews, setNewsRead } from './news.js'
29
30
  import { getNewsFeed, refreshNewsFeed } from './news-feed.js'
@@ -1306,6 +1307,24 @@ export function createApi(deps = {}) {
1306
1307
  } catch (e) { json(res, 200, { ok: false, error: String(e?.message || e) }) }
1307
1308
  return
1308
1309
  }
1310
+ case '/star/status': {
1311
+ // 价值触发的 star 提示:够不够格问、以及「讲证据」用的数字
1312
+ try {
1313
+ const env = typeof process !== 'undefined' ? process.env : {}
1314
+ json(res, 200, starPromptStatus({ root: vaultRoot, env }))
1315
+ } catch (e) { json(res, 200, { ok: false, error: String(e?.message || e) }) }
1316
+ return
1317
+ }
1318
+ case '/star/action': {
1319
+ const starChunks = []
1320
+ for await (const chunk of req) starChunks.push(chunk)
1321
+ let starBody
1322
+ try { starBody = JSON.parse(Buffer.concat(starChunks).toString('utf8') || '{}') } catch { return json(res, 400, { ok: false, error: 'JSON 解析失败' }) }
1323
+ const env = typeof process !== 'undefined' ? process.env : {}
1324
+ const action = String(starBody?.action || 'later')
1325
+ json(res, 200, { ok: markStarAction(env, action), action })
1326
+ return
1327
+ }
1309
1328
  case '/budget': {
1310
1329
  try {
1311
1330
  const cfg = getSettings() ?? {}