memory-eternal 0.16.0 → 0.18.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 +27 -27
- package/.codex-plugin/plugin.json +24 -24
- package/.cursor-plugin/plugin.json +14 -14
- package/README.md +81 -599
- package/README.zh-CN.md +138 -0
- package/bin/dsh-memory.mjs +33 -3
- package/cursor-extension/package.json +54 -54
- package/dsh-tui-plugin/dsh-plugin.json +42 -42
- package/dsh-tui-plugin/package.json +51 -51
- package/index.js +86 -11
- package/lib/api.js +57 -6
- package/lib/capture-run.js +35 -8
- package/lib/capture.js +37 -2
- package/lib/client.js +33 -21
- package/lib/core-memory.js +45 -0
- package/lib/db.js +21 -0
- package/lib/ledger.js +107 -0
- package/lib/mcp.js +8 -2
- package/lib/setup.js +132 -33
- package/lib/vault.js +20 -0
- package/orca-plugin/orca-plugin.json +36 -36
- package/package.json +145 -145
- package/scripts/release.mjs +5 -4
- package/web/app.js +38 -26
- package/README.en.md +0 -623
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
{
|
|
2
|
-
"manifestVersion": 1,
|
|
3
|
-
"id": "memory-eternal",
|
|
4
|
-
"publisher": "eternalnight996",
|
|
5
|
-
"name": "memory-eternal",
|
|
6
|
-
"version": "0.
|
|
7
|
-
"description": "Memory Atlas for Orca: open the local memory vault, pending review and knowledge graph from a sandboxed Orca panel.",
|
|
8
|
-
"author": {
|
|
9
|
-
"name": "EternalNight996",
|
|
10
|
-
"url": "https://github.com/EternalNight996"
|
|
11
|
-
},
|
|
12
|
-
"repository": "https://github.com/EternalNight996/memory-eternal",
|
|
13
|
-
"icon": "assets/icon.png",
|
|
14
|
-
"engines": {
|
|
15
|
-
"orca": ">=1.4.0"
|
|
16
|
-
},
|
|
17
|
-
"pluginApi": 1,
|
|
18
|
-
"contributes": {
|
|
19
|
-
"panels": [
|
|
20
|
-
{
|
|
21
|
-
"id": "memory",
|
|
22
|
-
"title": "记忆",
|
|
23
|
-
"icon": "brain",
|
|
24
|
-
"entry": "panel.html"
|
|
25
|
-
}
|
|
26
|
-
]
|
|
27
|
-
},
|
|
28
|
-
"capabilities": [
|
|
29
|
-
{
|
|
30
|
-
"kind": "workspace:read"
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
"kind": "terminal:send"
|
|
34
|
-
}
|
|
35
|
-
]
|
|
36
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"manifestVersion": 1,
|
|
3
|
+
"id": "memory-eternal",
|
|
4
|
+
"publisher": "eternalnight996",
|
|
5
|
+
"name": "memory-eternal",
|
|
6
|
+
"version": "0.18.0",
|
|
7
|
+
"description": "Memory Atlas for Orca: open the local memory vault, pending review and knowledge graph from a sandboxed Orca panel.",
|
|
8
|
+
"author": {
|
|
9
|
+
"name": "EternalNight996",
|
|
10
|
+
"url": "https://github.com/EternalNight996"
|
|
11
|
+
},
|
|
12
|
+
"repository": "https://github.com/EternalNight996/memory-eternal",
|
|
13
|
+
"icon": "assets/icon.png",
|
|
14
|
+
"engines": {
|
|
15
|
+
"orca": ">=1.4.0"
|
|
16
|
+
},
|
|
17
|
+
"pluginApi": 1,
|
|
18
|
+
"contributes": {
|
|
19
|
+
"panels": [
|
|
20
|
+
{
|
|
21
|
+
"id": "memory",
|
|
22
|
+
"title": "记忆",
|
|
23
|
+
"icon": "brain",
|
|
24
|
+
"entry": "panel.html"
|
|
25
|
+
}
|
|
26
|
+
]
|
|
27
|
+
},
|
|
28
|
+
"capabilities": [
|
|
29
|
+
{
|
|
30
|
+
"kind": "workspace:read"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"kind": "terminal:send"
|
|
34
|
+
}
|
|
35
|
+
]
|
|
36
|
+
}
|
package/package.json
CHANGED
|
@@ -1,145 +1,145 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "memory-eternal",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "记忆核心(Memory Eternal):自研的 DeepSeek Harness 记忆插件,不移植任何既有记忆框架——对话结束后自动沉淀知识卡到本地 Markdown Vault(自研去重、自研 CJK 检索、可 git 管理),设置页提供图形化知识库(统计 / 搜索 / 知识图谱 + 侧边栏一键弹窗),Agent 通过 memory_recall 工具按需召回历史上下文。零人工干预。",
|
|
5
|
-
"icon": "assets/icon.png",
|
|
6
|
-
"license": "MIT",
|
|
7
|
-
"repository": {
|
|
8
|
-
"type": "git",
|
|
9
|
-
"url": "git+https://github.com/EternalNight996/memory-eternal.git"
|
|
10
|
-
},
|
|
11
|
-
"homepage": "https://github.com/EternalNight996/memory-eternal",
|
|
12
|
-
"author": "EternalNight996",
|
|
13
|
-
"publishConfig": {
|
|
14
|
-
"registry": "https://registry.npmjs.org/"
|
|
15
|
-
},
|
|
16
|
-
"type": "module",
|
|
17
|
-
"main": "index.js",
|
|
18
|
-
"bin": {
|
|
19
|
-
"dsh-memory": "bin/dsh-memory.mjs"
|
|
20
|
-
},
|
|
21
|
-
"exports": {
|
|
22
|
-
".": "./index.js",
|
|
23
|
-
"./client": "./lib/client.js",
|
|
24
|
-
"./cordis.patch.yml": "./cordis.patch.yml",
|
|
25
|
-
"./package.json": "./package.json"
|
|
26
|
-
},
|
|
27
|
-
"files": [
|
|
28
|
-
"index.js",
|
|
29
|
-
"lib",
|
|
30
|
-
"bin",
|
|
31
|
-
"scripts",
|
|
32
|
-
"examples",
|
|
33
|
-
"web",
|
|
34
|
-
"hooks",
|
|
35
|
-
"skills",
|
|
36
|
-
"assets/icon.png",
|
|
37
|
-
"orca-plugin",
|
|
38
|
-
"dsh-tui-plugin",
|
|
39
|
-
"cursor-extension",
|
|
40
|
-
".claude-plugin",
|
|
41
|
-
".codex-plugin",
|
|
42
|
-
".cursor-plugin",
|
|
43
|
-
".mcp.json",
|
|
44
|
-
"cordis.patch.yml",
|
|
45
|
-
"README.md",
|
|
46
|
-
"README.
|
|
47
|
-
"LICENSE"
|
|
48
|
-
],
|
|
49
|
-
"engines": {
|
|
50
|
-
"node": ">=22",
|
|
51
|
-
"dsh": ">=0.1.5-alpha.2 <0.3.0-0"
|
|
52
|
-
},
|
|
53
|
-
"keywords": [
|
|
54
|
-
"deepseek-harness",
|
|
55
|
-
"dsh",
|
|
56
|
-
"dsh-plugin",
|
|
57
|
-
"plugin",
|
|
58
|
-
"memory",
|
|
59
|
-
"knowledge-base",
|
|
60
|
-
"vault",
|
|
61
|
-
"markdown",
|
|
62
|
-
"knowledge-graph",
|
|
63
|
-
"rag",
|
|
64
|
-
"second-brain"
|
|
65
|
-
],
|
|
66
|
-
"scripts": {
|
|
67
|
-
"build": "node build.mjs",
|
|
68
|
-
"build:client": "node build.mjs",
|
|
69
|
-
"prepublishOnly": "node build.mjs",
|
|
70
|
-
"release": "node scripts/release.mjs",
|
|
71
|
-
"release:dry": "node scripts/release.mjs --dry-run",
|
|
72
|
-
"panel-check": "node scripts/panel-check.mjs",
|
|
73
|
-
"test": "node build.mjs && node tests/vault.test.mjs && node tests/capture.test.mjs && node tests/capture-route.test.mjs && node tests/stall.test.mjs && node tests/vault-path.test.mjs && node tests/vault-resolve.test.mjs && node tests/minhash.test.mjs && node tests/settings-save.test.mjs && node tests/config-coverage.test.mjs && node tests/config-sync.test.mjs && node tests/config-merge.test.mjs && node tests/sse.test.mjs && node tests/api.test.mjs && node tests/import-roundtrip.test.mjs && node tests/graph-perf.test.mjs && node tests/settings-compat.test.mjs && node tests/node-bin.test.mjs && node tests/watchdog-lock.test.mjs && node tests/markdown.test.mjs && node tests/feedback.test.mjs && node tests/graph-lod.test.mjs && node tests/graph-warmup.test.mjs && node tests/loading-hints.test.mjs && node tests/web-entry.test.mjs && node tests/tui-scroll.test.mjs && node tests/tui-audit-scene.test.mjs && node tests/tui-plugin-boot.test.mjs && node tests/capture-session-id.test.mjs && node tests/ssr.test.mjs && node tests/window-controls.test.mjs && node tests/web-assets.test.mjs && node tests/manifests.test.mjs && node tests/two-store.test.mjs && node tests/noise-gate.test.mjs && node tests/e2e-recall.test.mjs && node tests/issue-fixes.test.mjs && node tests/issue-fixes-2.test.mjs && node tests/issue-fixes-3.test.mjs && node tests/watchdog-orphans.test.mjs && node tests/watchdog-restart.test.mjs && node tests/readme-i18n.test.mjs && node tests/issue-fixes-4.test.mjs && node tests/host-drain.test.mjs && node tests/e2e-host-drain.mjs && node tests/issue-fixes-5.test.mjs && node tests/issue-fixes-6.test.mjs && node tests/capture-json-repair.test.mjs && node tests/csrf-origin.test.mjs && node tests/watchdog-orphan-web.test.mjs && node tests/config-validate.test.mjs && node tests/issue-fixes-8.test.mjs && node tests/issue-fixes-9.test.mjs && node tests/release-verify.test.mjs && node tests/refine.test.mjs && node tests/db-restore.test.mjs && node tests/align.test.mjs && node tests/tags-normalize.test.mjs && node tests/resident-state.test.mjs && node tests/llm-route.test.mjs && node tests/host-managed.test.mjs && node tests/replace-claim.test.mjs && node tests/version-check-self.test.mjs && node tests/setup-codex.test.mjs && node tests/listener-netstat.test.mjs && node tests/issue-46-overlay.test.mjs && node tests/graph-initial-zoom.test.mjs && node tests/card-head-actions.test.mjs && node tests/card-reader-ux.test.mjs && node tests/tag-filter.test.mjs && node tests/ui-overflow.test.mjs && node tests/version-card-state.test.mjs && node tests/llm-routes-proxy.test.mjs && node tests/model-strikes.test.mjs && node tests/support-bundle.test.mjs && node tests/health-panel.test.mjs && node tests/issue-48-timeout.test.mjs"
|
|
74
|
-
},
|
|
75
|
-
"dependencies": {
|
|
76
|
-
"@deepseek-ai/schemastery": "^3.18.1"
|
|
77
|
-
},
|
|
78
|
-
"peerDependencies": {
|
|
79
|
-
"@deepseek-ai/cordis": "^4.0.1",
|
|
80
|
-
"@deepseek-ai/dsh-llm": ">=0.1.0-rc.2 <0.3.0-0",
|
|
81
|
-
"@deepseek-ai/dsh-tools": ">=0.1.0-rc.2 <0.3.0-0"
|
|
82
|
-
},
|
|
83
|
-
"devDependencies": {
|
|
84
|
-
"@types/react": "^18.3.1",
|
|
85
|
-
"esbuild": "^0.24.0",
|
|
86
|
-
"react": "18.3.1",
|
|
87
|
-
"react-dom": "18.3.1"
|
|
88
|
-
},
|
|
89
|
-
"dsh": {
|
|
90
|
-
"client": {
|
|
91
|
-
"platform": "web",
|
|
92
|
-
"inject": [
|
|
93
|
-
"@deepseek-ai/dsh-client-ui-settings",
|
|
94
|
-
"@deepseek-ai/dsh-client-locale"
|
|
95
|
-
]
|
|
96
|
-
},
|
|
97
|
-
"bundle": {
|
|
98
|
-
"patch": "./cordis.patch.yml"
|
|
99
|
-
},
|
|
100
|
-
"marketplace": {
|
|
101
|
-
"profiles": [
|
|
102
|
-
"web",
|
|
103
|
-
"desktop"
|
|
104
|
-
],
|
|
105
|
-
"requiresBuildApproval": false,
|
|
106
|
-
"requiresRestart": true,
|
|
107
|
-
"manualSteps": false
|
|
108
|
-
},
|
|
109
|
-
"permissions": {
|
|
110
|
-
"level": "medium",
|
|
111
|
-
"files": "read-write",
|
|
112
|
-
"network": "none",
|
|
113
|
-
"commands": "node",
|
|
114
|
-
"credentials": [],
|
|
115
|
-
"externalServices": [],
|
|
116
|
-
"notes": "Read/write under ~/.dsh/memory-vault only (plugin-private Markdown vault). No outbound network, no credentials, no shell. Hooks/MCP run via the `node` binary that hosts the DSH process."
|
|
117
|
-
},
|
|
118
|
-
"lifecycle": {
|
|
119
|
-
"scripts": [
|
|
120
|
-
"prepare",
|
|
121
|
-
"prepublishOnly"
|
|
122
|
-
],
|
|
123
|
-
"details": {
|
|
124
|
-
"prepare": "node build.mjs",
|
|
125
|
-
"prepublishOnly": "node build.mjs"
|
|
126
|
-
},
|
|
127
|
-
"notes": "Only `prepare` and `prepublishOnly` run `node build.mjs` (esbuild client bundling). No preinstall/install/postinstall hooks, no remote downloads, no native builds."
|
|
128
|
-
},
|
|
129
|
-
"compatibility": {
|
|
130
|
-
"dsh": ">=0.1.5-alpha.2 <0.3.0-0",
|
|
131
|
-
"dshReleases": {
|
|
132
|
-
"0.1.5-alpha.2": "compatible",
|
|
133
|
-
"0.1.5-rc.1": "compatible",
|
|
134
|
-
"0.1.5-rc.2": "compatible",
|
|
135
|
-
"0.1.7-rc.2": "compatible",
|
|
136
|
-
"0.2.0-rc.2": "compatible"
|
|
137
|
-
},
|
|
138
|
-
"node": ">=22",
|
|
139
|
-
"profiles": [
|
|
140
|
-
"web",
|
|
141
|
-
"desktop"
|
|
142
|
-
]
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "memory-eternal",
|
|
3
|
+
"version": "0.18.0",
|
|
4
|
+
"description": "记忆核心(Memory Eternal):自研的 DeepSeek Harness 记忆插件,不移植任何既有记忆框架——对话结束后自动沉淀知识卡到本地 Markdown Vault(自研去重、自研 CJK 检索、可 git 管理),设置页提供图形化知识库(统计 / 搜索 / 知识图谱 + 侧边栏一键弹窗),Agent 通过 memory_recall 工具按需召回历史上下文。零人工干预。",
|
|
5
|
+
"icon": "assets/icon.png",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "git+https://github.com/EternalNight996/memory-eternal.git"
|
|
10
|
+
},
|
|
11
|
+
"homepage": "https://github.com/EternalNight996/memory-eternal",
|
|
12
|
+
"author": "EternalNight996",
|
|
13
|
+
"publishConfig": {
|
|
14
|
+
"registry": "https://registry.npmjs.org/"
|
|
15
|
+
},
|
|
16
|
+
"type": "module",
|
|
17
|
+
"main": "index.js",
|
|
18
|
+
"bin": {
|
|
19
|
+
"dsh-memory": "bin/dsh-memory.mjs"
|
|
20
|
+
},
|
|
21
|
+
"exports": {
|
|
22
|
+
".": "./index.js",
|
|
23
|
+
"./client": "./lib/client.js",
|
|
24
|
+
"./cordis.patch.yml": "./cordis.patch.yml",
|
|
25
|
+
"./package.json": "./package.json"
|
|
26
|
+
},
|
|
27
|
+
"files": [
|
|
28
|
+
"index.js",
|
|
29
|
+
"lib",
|
|
30
|
+
"bin",
|
|
31
|
+
"scripts",
|
|
32
|
+
"examples",
|
|
33
|
+
"web",
|
|
34
|
+
"hooks",
|
|
35
|
+
"skills",
|
|
36
|
+
"assets/icon.png",
|
|
37
|
+
"orca-plugin",
|
|
38
|
+
"dsh-tui-plugin",
|
|
39
|
+
"cursor-extension",
|
|
40
|
+
".claude-plugin",
|
|
41
|
+
".codex-plugin",
|
|
42
|
+
".cursor-plugin",
|
|
43
|
+
".mcp.json",
|
|
44
|
+
"cordis.patch.yml",
|
|
45
|
+
"README.md",
|
|
46
|
+
"README.zh-CN.md",
|
|
47
|
+
"LICENSE"
|
|
48
|
+
],
|
|
49
|
+
"engines": {
|
|
50
|
+
"node": ">=22",
|
|
51
|
+
"dsh": ">=0.1.5-alpha.2 <0.3.0-0"
|
|
52
|
+
},
|
|
53
|
+
"keywords": [
|
|
54
|
+
"deepseek-harness",
|
|
55
|
+
"dsh",
|
|
56
|
+
"dsh-plugin",
|
|
57
|
+
"plugin",
|
|
58
|
+
"memory",
|
|
59
|
+
"knowledge-base",
|
|
60
|
+
"vault",
|
|
61
|
+
"markdown",
|
|
62
|
+
"knowledge-graph",
|
|
63
|
+
"rag",
|
|
64
|
+
"second-brain"
|
|
65
|
+
],
|
|
66
|
+
"scripts": {
|
|
67
|
+
"build": "node build.mjs",
|
|
68
|
+
"build:client": "node build.mjs",
|
|
69
|
+
"prepublishOnly": "node build.mjs",
|
|
70
|
+
"release": "node scripts/release.mjs",
|
|
71
|
+
"release:dry": "node scripts/release.mjs --dry-run",
|
|
72
|
+
"panel-check": "node scripts/panel-check.mjs",
|
|
73
|
+
"test": "node build.mjs && node tests/vault.test.mjs && node tests/capture.test.mjs && node tests/capture-route.test.mjs && node tests/stall.test.mjs && node tests/vault-path.test.mjs && node tests/vault-resolve.test.mjs && node tests/minhash.test.mjs && node tests/settings-save.test.mjs && node tests/config-coverage.test.mjs && node tests/config-sync.test.mjs && node tests/config-merge.test.mjs && node tests/sse.test.mjs && node tests/api.test.mjs && node tests/import-roundtrip.test.mjs && node tests/graph-perf.test.mjs && node tests/settings-compat.test.mjs && node tests/node-bin.test.mjs && node tests/watchdog-lock.test.mjs && node tests/markdown.test.mjs && node tests/feedback.test.mjs && node tests/graph-lod.test.mjs && node tests/graph-warmup.test.mjs && node tests/loading-hints.test.mjs && node tests/web-entry.test.mjs && node tests/tui-scroll.test.mjs && node tests/tui-audit-scene.test.mjs && node tests/tui-plugin-boot.test.mjs && node tests/capture-session-id.test.mjs && node tests/ssr.test.mjs && node tests/window-controls.test.mjs && node tests/web-assets.test.mjs && node tests/manifests.test.mjs && node tests/two-store.test.mjs && node tests/noise-gate.test.mjs && node tests/e2e-recall.test.mjs && node tests/issue-fixes.test.mjs && node tests/issue-fixes-2.test.mjs && node tests/issue-fixes-3.test.mjs && node tests/watchdog-orphans.test.mjs && node tests/watchdog-restart.test.mjs && node tests/readme-i18n.test.mjs && node tests/issue-fixes-4.test.mjs && node tests/host-drain.test.mjs && node tests/e2e-host-drain.mjs && node tests/issue-fixes-5.test.mjs && node tests/issue-fixes-6.test.mjs && node tests/capture-json-repair.test.mjs && node tests/csrf-origin.test.mjs && node tests/watchdog-orphan-web.test.mjs && node tests/config-validate.test.mjs && node tests/issue-fixes-8.test.mjs && node tests/issue-fixes-9.test.mjs && node tests/release-verify.test.mjs && node tests/refine.test.mjs && node tests/db-restore.test.mjs && node tests/align.test.mjs && node tests/tags-normalize.test.mjs && node tests/resident-state.test.mjs && node tests/llm-route.test.mjs && node tests/host-managed.test.mjs && node tests/replace-claim.test.mjs && node tests/version-check-self.test.mjs && node tests/setup-codex.test.mjs && node tests/listener-netstat.test.mjs && node tests/issue-46-overlay.test.mjs && node tests/graph-initial-zoom.test.mjs && node tests/card-head-actions.test.mjs && node tests/card-reader-ux.test.mjs && node tests/tag-filter.test.mjs && node tests/ui-overflow.test.mjs && node tests/version-card-state.test.mjs && node tests/llm-routes-proxy.test.mjs && node tests/model-strikes.test.mjs && node tests/support-bundle.test.mjs && node tests/health-panel.test.mjs && node tests/issue-48-timeout.test.mjs && node tests/setup-node-path.test.mjs && node tests/capture-kind.test.mjs && node tests/core-memory.test.mjs && node tests/ledger.test.mjs"
|
|
74
|
+
},
|
|
75
|
+
"dependencies": {
|
|
76
|
+
"@deepseek-ai/schemastery": "^3.18.1"
|
|
77
|
+
},
|
|
78
|
+
"peerDependencies": {
|
|
79
|
+
"@deepseek-ai/cordis": "^4.0.1",
|
|
80
|
+
"@deepseek-ai/dsh-llm": ">=0.1.0-rc.2 <0.3.0-0",
|
|
81
|
+
"@deepseek-ai/dsh-tools": ">=0.1.0-rc.2 <0.3.0-0"
|
|
82
|
+
},
|
|
83
|
+
"devDependencies": {
|
|
84
|
+
"@types/react": "^18.3.1",
|
|
85
|
+
"esbuild": "^0.24.0",
|
|
86
|
+
"react": "18.3.1",
|
|
87
|
+
"react-dom": "18.3.1"
|
|
88
|
+
},
|
|
89
|
+
"dsh": {
|
|
90
|
+
"client": {
|
|
91
|
+
"platform": "web",
|
|
92
|
+
"inject": [
|
|
93
|
+
"@deepseek-ai/dsh-client-ui-settings",
|
|
94
|
+
"@deepseek-ai/dsh-client-locale"
|
|
95
|
+
]
|
|
96
|
+
},
|
|
97
|
+
"bundle": {
|
|
98
|
+
"patch": "./cordis.patch.yml"
|
|
99
|
+
},
|
|
100
|
+
"marketplace": {
|
|
101
|
+
"profiles": [
|
|
102
|
+
"web",
|
|
103
|
+
"desktop"
|
|
104
|
+
],
|
|
105
|
+
"requiresBuildApproval": false,
|
|
106
|
+
"requiresRestart": true,
|
|
107
|
+
"manualSteps": false
|
|
108
|
+
},
|
|
109
|
+
"permissions": {
|
|
110
|
+
"level": "medium",
|
|
111
|
+
"files": "read-write",
|
|
112
|
+
"network": "none",
|
|
113
|
+
"commands": "node",
|
|
114
|
+
"credentials": [],
|
|
115
|
+
"externalServices": [],
|
|
116
|
+
"notes": "Read/write under ~/.dsh/memory-vault only (plugin-private Markdown vault). No outbound network, no credentials, no shell. Hooks/MCP run via the `node` binary that hosts the DSH process."
|
|
117
|
+
},
|
|
118
|
+
"lifecycle": {
|
|
119
|
+
"scripts": [
|
|
120
|
+
"prepare",
|
|
121
|
+
"prepublishOnly"
|
|
122
|
+
],
|
|
123
|
+
"details": {
|
|
124
|
+
"prepare": "node build.mjs",
|
|
125
|
+
"prepublishOnly": "node build.mjs"
|
|
126
|
+
},
|
|
127
|
+
"notes": "Only `prepare` and `prepublishOnly` run `node build.mjs` (esbuild client bundling). No preinstall/install/postinstall hooks, no remote downloads, no native builds."
|
|
128
|
+
},
|
|
129
|
+
"compatibility": {
|
|
130
|
+
"dsh": ">=0.1.5-alpha.2 <0.3.0-0",
|
|
131
|
+
"dshReleases": {
|
|
132
|
+
"0.1.5-alpha.2": "compatible",
|
|
133
|
+
"0.1.5-rc.1": "compatible",
|
|
134
|
+
"0.1.5-rc.2": "compatible",
|
|
135
|
+
"0.1.7-rc.2": "compatible",
|
|
136
|
+
"0.2.0-rc.2": "compatible"
|
|
137
|
+
},
|
|
138
|
+
"node": ">=22",
|
|
139
|
+
"profiles": [
|
|
140
|
+
"web",
|
|
141
|
+
"desktop"
|
|
142
|
+
]
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
package/scripts/release.mjs
CHANGED
|
@@ -132,15 +132,16 @@ let notes = ''
|
|
|
132
132
|
if (notesFile) {
|
|
133
133
|
notes = fs.readFileSync(path.resolve(ROOT, notesFile), 'utf8')
|
|
134
134
|
} else {
|
|
135
|
-
// 从
|
|
136
|
-
const
|
|
137
|
-
const
|
|
135
|
+
// 从 docs/CHANGELOG.md 取该版本那一行(| **v0.10.0** | 日期 | 说明 |);README 精简为落地页后兼容旧位置
|
|
136
|
+
const logFile = ['docs/CHANGELOG.md', 'README.md'].map((f) => path.join(ROOT, f)).find((f) => fs.existsSync(f))
|
|
137
|
+
const logText = logFile ? fs.readFileSync(logFile, 'utf8') : ''
|
|
138
|
+
const row = logText.split(/\r?\n/).find((l) => l.startsWith(`| **${tag}**`))
|
|
138
139
|
notes = [
|
|
139
140
|
`## ${tag}`,
|
|
140
141
|
'',
|
|
141
142
|
`npm: https://www.npmjs.com/package/memory-eternal/v/${pkg.version}`,
|
|
142
143
|
'',
|
|
143
|
-
row ? row.replace(/^\|\s*/, '').replace(/\s*\|\s*$/, '').split(/\s*\|\s*/).slice(1).join(' — ') : '(
|
|
144
|
+
row ? row.replace(/^\|\s*/, '').replace(/\s*\|\s*$/, '').split(/\s*\|\s*/).slice(1).join(' — ') : '(CHANGELOG 里没有这一版,请用 --notes-file 指定)',
|
|
144
145
|
].join('\n')
|
|
145
146
|
}
|
|
146
147
|
say(notes.split('\n').slice(0, 6).join('\n') + (notes.split('\n').length > 6 ? '\n…' : ''))
|