@pcircle/memesh 4.0.3 → 4.1.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.
Files changed (118) hide show
  1. package/README.de.md +227 -53
  2. package/README.es.md +230 -56
  3. package/README.fr.md +230 -56
  4. package/README.ja.md +229 -55
  5. package/README.ko.md +230 -56
  6. package/README.md +54 -3
  7. package/README.pt.md +230 -56
  8. package/README.th.md +230 -56
  9. package/README.vi.md +228 -54
  10. package/README.zh-CN.md +230 -56
  11. package/README.zh-TW.md +228 -54
  12. package/dashboard/dist/index.html +3 -3
  13. package/dist/core/analytics.d.ts +53 -0
  14. package/dist/core/analytics.d.ts.map +1 -0
  15. package/dist/core/analytics.js +127 -0
  16. package/dist/core/analytics.js.map +1 -0
  17. package/dist/core/auto-tagger.d.ts.map +1 -1
  18. package/dist/core/auto-tagger.js +14 -54
  19. package/dist/core/auto-tagger.js.map +1 -1
  20. package/dist/core/config.d.ts +1 -0
  21. package/dist/core/config.d.ts.map +1 -1
  22. package/dist/core/config.js +6 -10
  23. package/dist/core/config.js.map +1 -1
  24. package/dist/core/consolidator.d.ts.map +1 -1
  25. package/dist/core/consolidator.js +11 -61
  26. package/dist/core/consolidator.js.map +1 -1
  27. package/dist/core/doctor.d.ts +40 -0
  28. package/dist/core/doctor.d.ts.map +1 -0
  29. package/dist/core/doctor.js +264 -0
  30. package/dist/core/doctor.js.map +1 -0
  31. package/dist/core/embedder.js.map +1 -1
  32. package/dist/core/failure-analyzer.d.ts +2 -1
  33. package/dist/core/failure-analyzer.d.ts.map +1 -1
  34. package/dist/core/failure-analyzer.js +14 -47
  35. package/dist/core/failure-analyzer.js.map +1 -1
  36. package/dist/core/graph.d.ts +13 -0
  37. package/dist/core/graph.d.ts.map +1 -0
  38. package/dist/core/graph.js +13 -0
  39. package/dist/core/graph.js.map +1 -0
  40. package/dist/core/lesson-engine.d.ts +2 -1
  41. package/dist/core/lesson-engine.d.ts.map +1 -1
  42. package/dist/core/lesson-engine.js +2 -0
  43. package/dist/core/lesson-engine.js.map +1 -1
  44. package/dist/core/lifecycle.d.ts.map +1 -1
  45. package/dist/core/lifecycle.js +2 -1
  46. package/dist/core/lifecycle.js.map +1 -1
  47. package/dist/core/llm-client.d.ts +6 -0
  48. package/dist/core/llm-client.d.ts.map +1 -0
  49. package/dist/core/llm-client.js +64 -0
  50. package/dist/core/llm-client.js.map +1 -0
  51. package/dist/core/operations.d.ts +0 -1
  52. package/dist/core/operations.d.ts.map +1 -1
  53. package/dist/core/operations.js +40 -61
  54. package/dist/core/operations.js.map +1 -1
  55. package/dist/core/prompt-safety.d.ts +3 -0
  56. package/dist/core/prompt-safety.d.ts.map +1 -0
  57. package/dist/core/prompt-safety.js +13 -0
  58. package/dist/core/prompt-safety.js.map +1 -0
  59. package/dist/core/query-expander.d.ts.map +1 -1
  60. package/dist/core/query-expander.js +11 -72
  61. package/dist/core/query-expander.js.map +1 -1
  62. package/dist/core/schema-export.d.ts.map +1 -1
  63. package/dist/core/schema-export.js +72 -0
  64. package/dist/core/schema-export.js.map +1 -1
  65. package/dist/core/skill-usage-log.d.ts +11 -0
  66. package/dist/core/skill-usage-log.d.ts.map +1 -0
  67. package/dist/core/skill-usage-log.js +125 -0
  68. package/dist/core/skill-usage-log.js.map +1 -0
  69. package/dist/core/stats.d.ts +12 -0
  70. package/dist/core/stats.d.ts.map +1 -0
  71. package/dist/core/stats.js +19 -0
  72. package/dist/core/stats.js.map +1 -0
  73. package/dist/core/types.d.ts +9 -2
  74. package/dist/core/types.d.ts.map +1 -1
  75. package/dist/core/verifier.d.ts +37 -0
  76. package/dist/core/verifier.d.ts.map +1 -0
  77. package/dist/core/verifier.js +195 -0
  78. package/dist/core/verifier.js.map +1 -0
  79. package/dist/db.d.ts.map +1 -1
  80. package/dist/db.js +14 -0
  81. package/dist/db.js.map +1 -1
  82. package/dist/knowledge-graph.d.ts.map +1 -1
  83. package/dist/knowledge-graph.js +8 -43
  84. package/dist/knowledge-graph.js.map +1 -1
  85. package/dist/skills-manifest.json +71 -0
  86. package/dist/storage/conflicts.d.ts +4 -0
  87. package/dist/storage/conflicts.d.ts.map +1 -0
  88. package/dist/storage/conflicts.js +32 -0
  89. package/dist/storage/conflicts.js.map +1 -0
  90. package/dist/storage/fts-index.d.ts +4 -0
  91. package/dist/storage/fts-index.d.ts.map +1 -0
  92. package/dist/storage/fts-index.js +18 -0
  93. package/dist/storage/fts-index.js.map +1 -0
  94. package/dist/transports/cli/cli.js +203 -69
  95. package/dist/transports/cli/cli.js.map +1 -1
  96. package/dist/transports/http/server.d.ts +1 -0
  97. package/dist/transports/http/server.d.ts.map +1 -1
  98. package/dist/transports/http/server.js +138 -231
  99. package/dist/transports/http/server.js.map +1 -1
  100. package/dist/transports/mcp/handlers.d.ts +93 -0
  101. package/dist/transports/mcp/handlers.d.ts.map +1 -1
  102. package/dist/transports/mcp/handlers.js +51 -1
  103. package/dist/transports/mcp/handlers.js.map +1 -1
  104. package/dist/transports/schemas.d.ts +28 -0
  105. package/dist/transports/schemas.d.ts.map +1 -1
  106. package/dist/transports/schemas.js +25 -0
  107. package/dist/transports/schemas.js.map +1 -1
  108. package/hooks/hooks.json +10 -0
  109. package/package.json +5 -3
  110. package/plugin.json +1 -1
  111. package/scripts/hooks/_shared.js +207 -1
  112. package/scripts/hooks/post-commit.js +5 -76
  113. package/scripts/hooks/pre-bash-orchestration-nudge.js +150 -0
  114. package/scripts/hooks/pre-compact.js +8 -76
  115. package/scripts/hooks/pre-edit-recall.js +0 -0
  116. package/scripts/hooks/session-start.js +69 -8
  117. package/scripts/hooks/session-summary.js +12 -81
  118. package/skills/agentic-orchestration/SKILL.md +399 -0
package/README.zh-CN.md CHANGED
@@ -1,110 +1,284 @@
1
+ <!-- translated from README.md @ ab9d25f8d9cb7c78c4cc271717709e2efb4bac76 -->
2
+ <!-- DO NOT edit this file by hand. The maintainer regenerates it from README.md via a private toolkit script (see internal docs). Manual edits will be overwritten on next sync. -->
3
+
1
4
  🌐 [English](README.md) | [繁體中文](README.zh-TW.md) | [简体中文](README.zh-CN.md) | [日本語](README.ja.md) | [한국어](README.ko.md) | [Português](README.pt.md) | [Français](README.fr.md) | [Deutsch](README.de.md) | [Tiếng Việt](README.vi.md) | [Español](README.es.md) | [ภาษาไทย](README.th.md)
2
5
 
3
6
  <p align="center">
4
7
  <h1 align="center">MeMesh LLM Memory</h1>
5
8
  <p align="center">
6
- <strong>给 Claude Code 和 MCP coding agents 用的本地记忆层。</strong><br />
7
- 一个 SQLite 文件。不需要 Docker。不需要云端。
9
+ <strong>为 Claude Code 和 MCP 编码代理设计的本地内存层。</strong><br />
10
+ 一个 SQLite 文件。无需 Docker。无需云服务。
11
+ </p>
12
+ <p align="center">
13
+ <a href="https://www.npmjs.com/package/@pcircle/memesh"><img src="https://img.shields.io/npm/v/@pcircle/memesh?style=flat-square&color=3b82f6&label=npm" alt="npm" /></a>
14
+ <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-22c55e?style=flat-square" alt="MIT" /></a>
15
+ <a href="https://nodejs.org"><img src="https://img.shields.io/badge/node-%3E%3D20-22c55e?style=flat-square" alt="Node" /></a>
16
+ <a href="https://modelcontextprotocol.io"><img src="https://img.shields.io/badge/MCP-compatible-a855f7?style=flat-square" alt="MCP" /></a>
8
17
  </p>
9
18
  </p>
10
19
 
11
- > 这份简体中文版 README 是精简导览。最新、最完整的内容请以 [English README](README.md) 为准。
20
+ ---
12
21
 
13
- ## 它解决什么问题?
22
+ ## 问题
14
23
 
15
- coding agent 很容易在不同 session 之间丢失上下文。架构决策、修 bug 的过程、踩过的坑、项目限制,常常要反复解释。
24
+ 编码代理在会话间会遗忘。每个架构决策、每次 bug 修复、失败的测试用例、每一次来之不易的经验教训都需要重新解释一遍。Claude Code 每次都从零开始,重新发现老约束,浪费上下文在早该掌握的东西上。
16
25
 
17
- **MeMesh 把这些知识保存在本地,可搜索、可查看,也能在后续工作里再次被召回。**
26
+ **MeMesh 为编码代理提供持久化、可搜索、不断演进的本地内存。**
18
27
 
19
- 这个 npm package MeMesh 的本地 plugin / package 版本,重点是本地记忆,不是云端工作台,也不是企业平台。
28
+ 本包是 MeMesh 产品系列的本地内存层。我们刻意保持简洁并开源:用 npm 安装,内存文件保存在 `~/.memesh/knowledge-graph.db`,连接到 Claude Code 或任何兼容 MCP 的客户端即可。托管工作区和企业级操作系统产品应当独立于本包的 README 和路线图。
20
29
 
21
- ## 60 秒上手
30
+ ---
22
31
 
23
- ### 1. 安装
32
+ ## 60 秒快速开始
33
+
34
+ ### 第一步:安装
24
35
 
25
36
  ```bash
26
37
  npm install -g @pcircle/memesh
27
38
  ```
28
39
 
29
- ### 2. 记下一条决策
40
+ ### 第二步:记录一个决策
30
41
 
31
42
  ```bash
32
43
  memesh remember --name "auth-decision" --type "decision" --obs "Use OAuth 2.0 with PKCE"
33
44
  ```
34
45
 
35
- ### 3. 之后再找回来
46
+ ### 第三步:之后随时调用
36
47
 
37
48
  ```bash
38
49
  memesh recall "login security"
39
- # → 即使换种说法,也能找到 "OAuth 2.0 with PKCE"
50
+ # → 即使用词不同,也能找到 "OAuth 2.0 with PKCE"
51
+ ```
52
+
53
+ **就这样。** MeMesh 现在已经在会话间记忆和回忆了。
54
+
55
+ 想验证安装和本地接线是否完整:
56
+
57
+ ```bash
58
+ memesh doctor
40
59
  ```
41
60
 
42
- 打开 dashboard:
61
+ 打开仪表板浏览你的内存:
43
62
 
44
63
  ```bash
45
64
  memesh
46
65
  ```
47
66
 
48
- ## 适合谁?
67
+ <p align="center">
68
+ <img src="docs/images/dashboard-search.png" alt="MeMesh 搜索 — 瞬间找到任何记忆" width="100%" />
69
+ </p>
70
+
71
+ <p align="center">
72
+ <img src="docs/images/dashboard-analytics.png" alt="MeMesh 分析 — 健康评分、时间线、模式、知识覆盖" width="100%" />
73
+ </p>
74
+
75
+ <p align="center">
76
+ <img src="docs/images/dashboard-graph.png" alt="MeMesh 知识图 — 交互式知识图,支持类型过滤和中心模式" width="100%" />
77
+ </p>
78
+
79
+ ---
80
+
81
+ ## 这是为谁设计的?
82
+
83
+ | 你是... | MeMesh 帮助你... |
84
+ |--------|-----------------|
85
+ | **使用 Claude Code 的开发者** | 工作时自动回忆项目决策、文件特定的经验教训和过去的失败 |
86
+ | **编码代理重度用户** | 在 MCP 兼容工具间共享一个本地内存层 |
87
+ | **团队试验 AI 编码工作流** | 导出/导入项目知识,无需引入托管基础设施 |
88
+ | **代理开发者** | 通过 MCP、HTTP、CLI 或 Python SDK 添加本地内存 |
89
+
90
+ ---
91
+
92
+ ## 为编码代理优先设计
93
+
94
+ <table>
95
+ <tr>
96
+ <td width="33%" align="center">
97
+
98
+ **Claude Code / Desktop**
99
+ ```bash
100
+ memesh-mcp
101
+ ```
102
+ MCP 工具 + Claude Code 钩子
103
+
104
+ </td>
105
+ <td width="33%" align="center">
106
+
107
+ **任何 HTTP 客户端**
108
+ ```bash
109
+ curl localhost:3737/v1/recall \
110
+ -H "Content-Type: application/json" \
111
+ -d '{"query":"auth"}'
112
+ ```
113
+ `memesh serve` (REST API)
114
+
115
+ </td>
116
+ <td width="33%" align="center">
117
+
118
+ **任何 LLM (OpenAI 格式)**
119
+ ```bash
120
+ memesh export-schema \
121
+ --format openai
122
+ ```
123
+ 粘贴工具到任何 API 调用
124
+
125
+ </td>
126
+ </tr>
127
+ </table>
128
+
129
+ ---
49
130
 
50
- - 使用 Claude Code,希望跨 session 保留项目上下文的开发者
51
- - 使用 MCP coding agents,希望共用同一份本地记忆的高级用户
52
- - 小型 AI-native 开发团队,希望通过 export / import 共享项目知识
53
- - 想把本地记忆接入 CLI、HTTP 或 MCP 工作流的 agent 开发者
131
+ ## 为什么不用 OpenMemory、Cursor Memories、Mem0 Zep?
54
132
 
55
- ## 为什么选 MeMesh
133
+ | | **MeMesh** | OpenMemory | Cursor Memories | Mem0 | Zep / Graphiti |
134
+ |---|---|---|---|---|---|
135
+ | **最佳适用场景** | 编码代理的本地内存 | 本地/跨客户端 MCP 内存 | Cursor 原生项目内存 | 托管应用/代理内存 | 时间知识图 |
136
+ | **安装形式** | `npm install -g @pcircle/memesh` | 本地应用/服务器流程 | 内置于 Cursor | 云 API / SDK / MCP | 服务/框架配置 |
137
+ | **存储方式** | 单个本地 SQLite 文件 | 本地内存栈 | Cursor 管理的规则/内存 | 托管或自托管栈 | 图数据库 |
138
+ | **是否需要云** | 否 | 本地模式不需要 | 取决于 Cursor 账户/设置 | 平台需要 | 通常需要/自托管 |
139
+ | **Claude Code 钩子** | 一级支持 | MCP 工具 | 否 | MCP 工具 | 不针对 Claude Code |
140
+ | **仪表板** | 内置 | 内置 | Cursor 设置 | 平台仪表板 | 平台/图形工具 |
141
+ | **权衡** | 简洁的本地方案,不适用企业规模 | 更宽泛的本地应用足迹 | 绑定 Cursor | 强大的托管平台,本地化程度低 | 强大的图模型,配置更复杂 |
56
142
 
57
- - 本地优先:数据保存在你自己的 SQLite 文件里
58
- - 安装轻量:`npm install -g` 后即可使用
59
- - 接入直接:同时支持 CLI、HTTP、MCP
60
- - 对 Claude Code 友好:提供 hooks,可在工作流里自动带入相关记忆
61
- - 可查看可清理:内建 dashboard,不是黑盒
62
- - 更安全的导入边界:导入的记忆默认可搜索,但不会直接自动注入到 Claude hooks,除非你重新审核或在本地重新保存
143
+ **MeMesh 用即插即用的本地设置、可检视的存储和编码代理工作流钩子,换取企业级托管基础设施。**
63
144
 
64
- ## 在 Claude Code 里会自动做什么?
145
+ ---
65
146
 
66
- MeMesh 目前会在 5 个时机帮你:
147
+ ## Claude Code 中的自动化流程
67
148
 
68
- - session 开始时,加载项目相关记忆和已知教训
69
- - 编辑文件前,先召回与该文件或项目相关的记忆
70
- - `git commit` 后,记录你做了哪些改动
71
- - session 结束时,整理本次修复、错误和 lesson learned
72
- - context compact 之前,先把重要内容写回本地记忆
149
+ 你不需要手动记住一切。MeMesh **6 个钩子**在你工作时自动捕获和注入知识:
73
150
 
74
- ## Dashboard 里有什么?
151
+ | 触发条件 | MeMesh 的动作 |
152
+ |---------|------------|
153
+ | **每个会话开始** | 加载最相关的记忆 + 来自过去经验教训的主动警告 + 代理编排横幅 |
154
+ | **编辑文件前** | 回忆与该文件或项目相关的记忆,然后 Claude 才开始写代码 |
155
+ | **执行 bash 命令前** | 推动 Claude 派遣高可验证性命令(测试、构建、lint、迁移、部署、基准测试)作为后台代理 |
156
+ | **每次 `git commit` 后** | 记录你的改动,附带 diff 统计 |
157
+ | **Claude 停止时** | 捕获编辑过的文件、修复的错误、自动从失败中生成结构化经验教训 |
158
+ | **上下文压缩前** | 在知识被上下文限制吞没前保存 |
75
159
 
76
- Dashboard 目前有 7 个标签页,并支持 11 种语言:
160
+ > **随时退出:** `export MEMESH_AUTO_CAPTURE=false`
77
161
 
78
- - Search:搜索记忆
79
- - Browse:浏览全部记忆
80
- - Analytics:查看健康度、趋势和使用情况
81
- - Graph:查看知识关系图
82
- - Lessons:查看过往经验教训
83
- - Manage:归档或恢复记忆
84
- - Settings:设置 LLM provider 和语言
162
+ ---
85
163
 
86
- ## Smart Mode 是什么?
164
+ ## 仪表板
87
165
 
88
- MeMesh 默认就能离线使用。若你额外配置 LLM API key,可以启用更智能的能力,例如:
166
+ 7 个标签页,11 种语言,零外部依赖。服务器运行时访问 `http://localhost:3737/dashboard`。
89
167
 
90
- - query expansion
91
- - 更好的自动提取
92
- - 更智能的记忆整理与压缩
168
+ | 标签页 | 你看到什么 |
169
+ |--------|---------|
170
+ | **搜索** | 全文 + 向量相似度搜索,覆盖所有记忆 |
171
+ | **浏览** | 所有实体的分页列表,支持归档/恢复 |
172
+ | **分析** | 内存健康评分(0-100)、30 天时间线、价值指标、知识覆盖、清理建议、你的工作模式 |
173
+ | **知识图** | 交互式力导向图,支持类型过滤、搜索、中心模式、新近度热力图 |
174
+ | **经验教训** | 来自过去失败的结构化经验教训(错误、根本原因、修复、预防) |
175
+ | **管理** | 归档和恢复实体 |
176
+ | **设置** | LLM 提供商配置、即时语言切换器 |
93
177
 
94
- 不配置也可以正常使用核心功能。
178
+ ---
95
179
 
96
- ## 更多信息
180
+ ## 聪慧功能
97
181
 
98
- - 完整功能、对比、API release 细节:请看 [English README](README.md)
99
- - 平台集成方式:请看 [docs/platforms/README.md](docs/platforms/README.md)
100
- - API 参考:请看 [docs/api/API_REFERENCE.md](docs/api/API_REFERENCE.md)
182
+ **🧠 智能搜索** 搜索"登录安全"会找到"OAuth PKCE"相关的记忆。MeMesh 用你配置的 LLM 扩展查询。
101
183
 
102
- ## 开发与验证
184
+ **📊 评分排序** — 结果按相关性(30%)+ 新近度(25%)+ 频率(15%)+ 置信度(15%)+ 回忆影响(10%)+ 时间有效性(5%)排序。
185
+
186
+ **🔄 知识演进** — 决策会变化。`forget` 归档旧记忆(永不删除)。`supersedes` 关系链接 旧 → 新。你的 AI 总是看到最新版本。
187
+
188
+ **⚠️ 冲突检测** — 如果你有两条相互矛盾的记忆,MeMesh 会警告你。
189
+
190
+ **📦 团队共享** — `memesh export > team-knowledge.json` → 与团队分享 → `memesh import team-knowledge.json`
191
+ 导入的包保持可搜索,但 MeMesh 不会自动将导入的记忆注入到 Claude 钩子中,直到你审查或本地重新存储它们。
192
+
193
+ ---
194
+
195
+ ## 使用示例
196
+
197
+ > "MeMesh 记得我们三周前选择了 PKCE 而不是隐式流。我再次问 Claude 有关身份验证的问题时,它已经知道——无需重新解释。"
198
+ > — **独立开发者,正在构建 SaaS**
199
+
200
+ > "我们每周五导出团队的内存,周一导入。每个人的 Claude 周一开始时都知道团队上周学到了什么。"
201
+ > — **3 人初创公司,共享知识库**
202
+
203
+ > "仪表板显示我 90% 的记忆是自动生成的会话日志。我开始有意使用 `remember` 记录架构决策。彻底改变了游戏规则。"
204
+ > — **发现分析标签页的开发者**
205
+
206
+ ---
207
+
208
+ ## 解锁智能模式(可选)
209
+
210
+ MeMesh 默认离线工作。仅当你需要查询扩展、更聪慧的提取和压缩时,才添加 LLM API 密钥:
211
+
212
+ ```bash
213
+ memesh config set llm.provider anthropic
214
+ memesh config set llm.api-key sk-ant-...
215
+ ```
216
+
217
+ 或使用仪表板设置标签页(可视化配置):
218
+
219
+ ```bash
220
+ memesh # 打开仪表板 → 设置标签页
221
+ ```
222
+
223
+ | | 级别 0(默认) | 级别 1(智能模式) |
224
+ |---|---|---|
225
+ | **搜索** | FTS5 关键词匹配 | + LLM 查询扩展(~97% 召回率) |
226
+ | **自动捕获** | 基于规则的模式 | + LLM 提取决策和经验教训 |
227
+ | **压缩** | 不可用 | `consolidate` 压缩冗长的记忆 |
228
+ | **成本** | 免费,无需 API 密钥 | ~$0.0001 每次搜索(Haiku) |
229
+
230
+ ---
231
+
232
+ ## 全部 9 个内存工具
233
+
234
+ | 工具 | 它做什么 |
235
+ |------|--------|
236
+ | `remember` | 存储知识,附带观察、关系和标签 |
237
+ | `recall` | 智能搜索,多因素评分和 LLM 查询扩展 |
238
+ | `forget` | 软归档(永不删除)或移除特定观察 |
239
+ | `consolidate` | LLM 驱动的冗长记忆压缩 |
240
+ | `export` | 在项目或团队成员间共享内存,格式为 JSON |
241
+ | `import` | 导入内存,支持合并策略(跳过 / 覆盖 / 追加) |
242
+ | `learn` | 从错误中记录结构化经验教训(错误、根本原因、修复、预防) |
243
+ | `user_patterns` | 分析你的工作模式——日程、工具、优势、学习领域 |
244
+ | `verify_agent_work` | 为后台代理工作保存验证报告;对照 `git diff` 验证声称的文件改动 |
245
+
246
+ ---
247
+
248
+ ## 架构
249
+
250
+ ```
251
+ ┌─────────────────┐
252
+ │ Core Engine │
253
+ │ (8 operations) │
254
+ └────────┬────────┘
255
+ ┌─────────────────┼─────────────────┐
256
+ │ │ │
257
+ CLI (memesh) HTTP API (serve) MCP (memesh-mcp)
258
+ │ │ │
259
+ └─────────────────┼─────────────────┘
260
+
261
+ SQLite + FTS5 + sqlite-vec
262
+ (~/.memesh/knowledge-graph.db)
263
+ ```
264
+
265
+ 核心是框架无关的。相同逻辑从终端、HTTP 或 MCP 运行。
266
+
267
+ ---
268
+
269
+ ## 贡献
103
270
 
104
271
  ```bash
105
272
  git clone https://github.com/PCIRCLE-AI/memesh-llm-memory
106
- cd memesh-llm-memory
107
- npm install
108
- npm run build
109
- npm test
273
+ cd memesh-llm-memory && npm install && npm run build
274
+ npm test # 489 个测试
275
+ npm run test:e2e-dashboard
110
276
  ```
277
+
278
+ 仪表板:`cd dashboard && npm install && npm run dev`
279
+
280
+ ---
281
+
282
+ <p align="center">
283
+ <strong>MIT</strong> — 由 <a href="https://pcircle.ai">PCIRCLE AI</a> 开发
284
+ </p>