dsh-mnemon 0.1.5 → 0.2.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.
Files changed (230) hide show
  1. package/README.md +125 -104
  2. package/README.zh-CN.md +130 -109
  3. package/THIRD_PARTY_NOTICES.md +7 -0
  4. package/lib/client.js +4193 -1128
  5. package/lib/index.js +4326 -307
  6. package/lib/types/activity.d.ts +2 -18
  7. package/lib/types/channels.d.ts +1 -4
  8. package/lib/types/client/GlobalLocationSetting.d.ts +19 -0
  9. package/lib/types/client/MnemonLogo.d.ts +0 -1
  10. package/lib/types/client/MnemonPackSection.d.ts +5 -3
  11. package/lib/types/client/MnemonSaveAction.d.ts +1 -2
  12. package/lib/types/client/MnemonSettingsCard.d.ts +5 -4
  13. package/lib/types/client/MnemonTurnTail.d.ts +1 -2
  14. package/lib/types/client/MnemonView.d.ts +1 -3
  15. package/lib/types/client/MnemonViewAppearance.d.ts +0 -1
  16. package/lib/types/client/ProviderIcon.d.ts +8 -0
  17. package/lib/types/client/ProviderSettingsSection.d.ts +16 -0
  18. package/lib/types/client/anchor.d.ts +0 -1
  19. package/lib/types/client/api.d.ts +12 -19
  20. package/lib/types/client/dsh-compat.d.ts +0 -1
  21. package/lib/types/client/index.d.ts +0 -1
  22. package/lib/types/client/locales.d.ts +552 -1
  23. package/lib/types/client/settings.d.ts +4 -3
  24. package/lib/types/client/sidebar-entry.d.ts +0 -1
  25. package/lib/types/client/workspace-controller.d.ts +0 -1
  26. package/lib/types/client/workspace-mount.d.ts +1 -3
  27. package/lib/types/commands.d.ts +0 -1
  28. package/lib/types/config-values.d.ts +0 -1
  29. package/lib/types/config.d.ts +6 -80
  30. package/lib/types/contracts.d.ts +38 -62
  31. package/lib/types/documents.d.ts +2 -79
  32. package/lib/types/guidance.d.ts +0 -1
  33. package/lib/types/index.d.ts +0 -1
  34. package/lib/types/lifecycle.d.ts +32 -47
  35. package/lib/types/live-runtime.d.ts +0 -1
  36. package/lib/types/memory-bodies.d.ts +27 -23
  37. package/lib/types/pack.d.ts +2 -48
  38. package/lib/types/process.d.ts +4 -2
  39. package/lib/types/provider-placement.d.ts +26 -0
  40. package/lib/types/providers/byterover.d.ts +31 -0
  41. package/lib/types/providers/catalog.d.ts +23 -0
  42. package/lib/types/providers/hindsight.d.ts +19 -0
  43. package/lib/types/providers/holographic.d.ts +22 -0
  44. package/lib/types/providers/honcho.d.ts +18 -0
  45. package/lib/types/providers/http.d.ts +32 -0
  46. package/lib/types/providers/mem0.d.ts +17 -0
  47. package/lib/types/providers/openviking.d.ts +31 -0
  48. package/lib/types/providers/provider.d.ts +38 -0
  49. package/lib/types/providers/retaindb.d.ts +16 -0
  50. package/lib/types/providers/supermemory.d.ts +16 -0
  51. package/lib/types/review-activity.d.ts +2 -16
  52. package/lib/types/rpc.d.ts +1 -2
  53. package/lib/types/runner.d.ts +15 -11
  54. package/lib/types/runtime-memory.d.ts +2 -59
  55. package/lib/types/service.d.ts +54 -152
  56. package/lib/types/settings.d.ts +1 -4
  57. package/lib/types/shared/contracts.d.ts +869 -0
  58. package/lib/types/storage-scope.d.ts +2 -29
  59. package/lib/types/subagent.d.ts +11 -16
  60. package/lib/types/tools.d.ts +0 -1
  61. package/lib/types/version-updates.d.ts +2 -29
  62. package/package.json +22 -9
  63. package/docs/README.md +0 -8
  64. package/docs/assets/diagrams/en/memory-system-flow.png +0 -0
  65. package/docs/assets/diagrams/en/project-architecture.svg +0 -182
  66. package/docs/assets/diagrams/zh-CN/memory-system-flow.png +0 -0
  67. package/docs/assets/diagrams/zh-CN/project-architecture.svg +0 -182
  68. package/docs/assets/media/dsh-mnemon-memory-system-demo-poster.jpg +0 -0
  69. package/docs/assets/media/dsh-mnemon-memory-system-demo.gif +0 -0
  70. package/docs/assets/media/dsh-mnemon-memory-system-demo.mp4 +0 -0
  71. package/docs/assets/screenshots/conversation-memory-jump.png +0 -0
  72. package/docs/assets/screenshots/conversation-save-dialog.png +0 -0
  73. package/docs/assets/screenshots/conversation-turn-memory.png +0 -0
  74. package/docs/assets/screenshots/document-create-dialog.png +0 -0
  75. package/docs/assets/screenshots/documents-markdown.png +0 -0
  76. package/docs/assets/screenshots/entities-context.png +0 -0
  77. package/docs/assets/screenshots/memory-content.png +0 -0
  78. package/docs/assets/screenshots/overview-memory-graph.png +0 -0
  79. package/docs/assets/screenshots/recall-agent-answer.png +0 -0
  80. package/docs/assets/screenshots/remember-dialog.png +0 -0
  81. package/docs/assets/screenshots/runtime-memory-add.png +0 -0
  82. package/docs/assets/screenshots/runtime-memory.png +0 -0
  83. package/docs/assets/screenshots/settings-memory-system.png +0 -0
  84. package/docs/assets/screenshots/status-overview.png +0 -0
  85. package/docs/assets/screenshots/version-check.png +0 -0
  86. package/docs/en/README.md +0 -48
  87. package/docs/en/architecture.md +0 -133
  88. package/docs/en/configuration.md +0 -234
  89. package/docs/en/development.md +0 -198
  90. package/docs/en/getting-started.md +0 -199
  91. package/docs/en/interfaces.md +0 -181
  92. package/docs/en/operations.md +0 -173
  93. package/docs/en/project-overview.md +0 -145
  94. package/docs/en/roadmap.md +0 -41
  95. package/docs/en/storage-model.md +0 -185
  96. package/docs/en/ui-guide.md +0 -156
  97. package/docs/en/workflows.md +0 -290
  98. package/docs/zh-CN/README.md +0 -48
  99. package/docs/zh-CN/architecture.md +0 -133
  100. package/docs/zh-CN/configuration.md +0 -234
  101. package/docs/zh-CN/development.md +0 -198
  102. package/docs/zh-CN/getting-started.md +0 -199
  103. package/docs/zh-CN/interfaces.md +0 -181
  104. package/docs/zh-CN/operations.md +0 -173
  105. package/docs/zh-CN/project-overview.md +0 -145
  106. package/docs/zh-CN/roadmap.md +0 -41
  107. package/docs/zh-CN/storage-model.md +0 -185
  108. package/docs/zh-CN/ui-guide.md +0 -160
  109. package/docs/zh-CN/workflows.md +0 -290
  110. package/lib/client.js.map +0 -1
  111. package/lib/types/activity.d.ts.map +0 -1
  112. package/lib/types/activity.js +0 -93
  113. package/lib/types/activity.js.map +0 -1
  114. package/lib/types/channels.d.ts.map +0 -1
  115. package/lib/types/channels.js +0 -4
  116. package/lib/types/channels.js.map +0 -1
  117. package/lib/types/client/MnemonLogo.d.ts.map +0 -1
  118. package/lib/types/client/MnemonLogo.js +0 -6
  119. package/lib/types/client/MnemonLogo.js.map +0 -1
  120. package/lib/types/client/MnemonPackSection.d.ts.map +0 -1
  121. package/lib/types/client/MnemonPackSection.js +0 -136
  122. package/lib/types/client/MnemonPackSection.js.map +0 -1
  123. package/lib/types/client/MnemonSaveAction.d.ts.map +0 -1
  124. package/lib/types/client/MnemonSaveAction.js +0 -90
  125. package/lib/types/client/MnemonSaveAction.js.map +0 -1
  126. package/lib/types/client/MnemonSettingsCard.d.ts.map +0 -1
  127. package/lib/types/client/MnemonSettingsCard.js +0 -155
  128. package/lib/types/client/MnemonSettingsCard.js.map +0 -1
  129. package/lib/types/client/MnemonTurnTail.d.ts.map +0 -1
  130. package/lib/types/client/MnemonTurnTail.js +0 -56
  131. package/lib/types/client/MnemonTurnTail.js.map +0 -1
  132. package/lib/types/client/MnemonView.d.ts.map +0 -1
  133. package/lib/types/client/MnemonView.js +0 -1594
  134. package/lib/types/client/MnemonView.js.map +0 -1
  135. package/lib/types/client/MnemonViewAppearance.d.ts.map +0 -1
  136. package/lib/types/client/MnemonViewAppearance.js +0 -67
  137. package/lib/types/client/MnemonViewAppearance.js.map +0 -1
  138. package/lib/types/client/anchor.d.ts.map +0 -1
  139. package/lib/types/client/anchor.js +0 -46
  140. package/lib/types/client/anchor.js.map +0 -1
  141. package/lib/types/client/api.d.ts.map +0 -1
  142. package/lib/types/client/api.js +0 -150
  143. package/lib/types/client/api.js.map +0 -1
  144. package/lib/types/client/dsh-compat.d.ts.map +0 -1
  145. package/lib/types/client/dsh-compat.js +0 -2
  146. package/lib/types/client/dsh-compat.js.map +0 -1
  147. package/lib/types/client/index.d.ts.map +0 -1
  148. package/lib/types/client/index.js +0 -161
  149. package/lib/types/client/index.js.map +0 -1
  150. package/lib/types/client/locales.d.ts.map +0 -1
  151. package/lib/types/client/locales.js +0 -1172
  152. package/lib/types/client/locales.js.map +0 -1
  153. package/lib/types/client/settings.d.ts.map +0 -1
  154. package/lib/types/client/settings.js +0 -70
  155. package/lib/types/client/settings.js.map +0 -1
  156. package/lib/types/client/sidebar-entry.d.ts.map +0 -1
  157. package/lib/types/client/sidebar-entry.js +0 -134
  158. package/lib/types/client/sidebar-entry.js.map +0 -1
  159. package/lib/types/client/workspace-controller.d.ts.map +0 -1
  160. package/lib/types/client/workspace-controller.js +0 -21
  161. package/lib/types/client/workspace-controller.js.map +0 -1
  162. package/lib/types/client/workspace-mount.d.ts.map +0 -1
  163. package/lib/types/client/workspace-mount.js +0 -138
  164. package/lib/types/client/workspace-mount.js.map +0 -1
  165. package/lib/types/commands.d.ts.map +0 -1
  166. package/lib/types/commands.js +0 -104
  167. package/lib/types/commands.js.map +0 -1
  168. package/lib/types/config-values.d.ts.map +0 -1
  169. package/lib/types/config-values.js +0 -4
  170. package/lib/types/config-values.js.map +0 -1
  171. package/lib/types/config.d.ts.map +0 -1
  172. package/lib/types/config.js +0 -127
  173. package/lib/types/config.js.map +0 -1
  174. package/lib/types/contracts.d.ts.map +0 -1
  175. package/lib/types/contracts.js +0 -2
  176. package/lib/types/contracts.js.map +0 -1
  177. package/lib/types/documents.d.ts.map +0 -1
  178. package/lib/types/documents.js +0 -495
  179. package/lib/types/documents.js.map +0 -1
  180. package/lib/types/guidance.d.ts.map +0 -1
  181. package/lib/types/guidance.js +0 -34
  182. package/lib/types/guidance.js.map +0 -1
  183. package/lib/types/index.d.ts.map +0 -1
  184. package/lib/types/index.js +0 -55
  185. package/lib/types/index.js.map +0 -1
  186. package/lib/types/lifecycle.d.ts.map +0 -1
  187. package/lib/types/lifecycle.js +0 -456
  188. package/lib/types/lifecycle.js.map +0 -1
  189. package/lib/types/live-runtime.d.ts.map +0 -1
  190. package/lib/types/live-runtime.js +0 -146
  191. package/lib/types/live-runtime.js.map +0 -1
  192. package/lib/types/memory-bodies.d.ts.map +0 -1
  193. package/lib/types/memory-bodies.js +0 -186
  194. package/lib/types/memory-bodies.js.map +0 -1
  195. package/lib/types/pack.d.ts.map +0 -1
  196. package/lib/types/pack.js +0 -709
  197. package/lib/types/pack.js.map +0 -1
  198. package/lib/types/process.d.ts.map +0 -1
  199. package/lib/types/process.js +0 -65
  200. package/lib/types/process.js.map +0 -1
  201. package/lib/types/review-activity.d.ts.map +0 -1
  202. package/lib/types/review-activity.js +0 -37
  203. package/lib/types/review-activity.js.map +0 -1
  204. package/lib/types/rpc.d.ts.map +0 -1
  205. package/lib/types/rpc.js +0 -384
  206. package/lib/types/rpc.js.map +0 -1
  207. package/lib/types/runner.d.ts.map +0 -1
  208. package/lib/types/runner.js +0 -198
  209. package/lib/types/runner.js.map +0 -1
  210. package/lib/types/runtime-memory.d.ts.map +0 -1
  211. package/lib/types/runtime-memory.js +0 -415
  212. package/lib/types/runtime-memory.js.map +0 -1
  213. package/lib/types/service.d.ts.map +0 -1
  214. package/lib/types/service.js +0 -512
  215. package/lib/types/service.js.map +0 -1
  216. package/lib/types/settings.d.ts.map +0 -1
  217. package/lib/types/settings.js +0 -103
  218. package/lib/types/settings.js.map +0 -1
  219. package/lib/types/storage-scope.d.ts.map +0 -1
  220. package/lib/types/storage-scope.js +0 -179
  221. package/lib/types/storage-scope.js.map +0 -1
  222. package/lib/types/subagent.d.ts.map +0 -1
  223. package/lib/types/subagent.js +0 -624
  224. package/lib/types/subagent.js.map +0 -1
  225. package/lib/types/tools.d.ts.map +0 -1
  226. package/lib/types/tools.js +0 -341
  227. package/lib/types/tools.js.map +0 -1
  228. package/lib/types/version-updates.d.ts.map +0 -1
  229. package/lib/types/version-updates.js +0 -383
  230. package/lib/types/version-updates.js.map +0 -1
@@ -1,234 +0,0 @@
1
- # 配置参考
2
-
3
- **简体中文** | [English](../en/configuration.md) | [文档中心](./README.md)
4
-
5
- ## 配置位置与生效方式
6
-
7
- 插件在 DSH settings 服务中注册 `mnemon` 命名空间。用户配置位于:
8
-
9
- ```text
10
- $DSH_HOME/settings.yaml
11
- ```
12
-
13
- 默认通常是 `~/.dsh/settings.yaml`。当前全部配置标记为 `live` 生效;保存后会先初始化候选运行图,再原子切换 Host 服务。
14
-
15
- Web 设置页编辑 `displayMode`、`storageScope`、`dataDir`,以及 `mnemon-ui` 下的回合记忆条和存入记忆按钮;同页还提供当前有效目录的 ZIP 导入 / 导出。其他高级项需要直接修改 YAML。
16
-
17
- ## 完整示例
18
-
19
- ```yaml
20
- mnemon:
21
- displayMode: sidebar # sidebar | buildin
22
- storageScope: global # global | workspace | custom
23
- # dataDir: ~/mnemon-data # custom 时必填
24
- # cliPath: /opt/homebrew/bin/mnemon
25
- # store: legacy-store # 兼容发现提示,不是常规路由目标
26
- timeoutMs: 10000
27
- defaultRecallLimit: 10
28
- routingGuidance: true
29
- lifecycleEnabled: true
30
- recallMode: guided
31
- writebackMode: guided
32
- idleReviewMs: 30000
33
- tabEnabled: true
34
- writeEnabled: true
35
- ```
36
-
37
- ## 选项
38
-
39
- | 配置 | 默认值 | 范围 | 实现语义 |
40
- |---|---:|---|---|
41
- | `displayMode` | `sidebar` | `sidebar` / `buildin` | `sidebar` 挂载左侧栏独立工作台;`buildin` 恢复 DSH 原生对话区标签页;保存后实时切换且不会同时挂载两个入口 |
42
- | `storageScope` | `global` | `global` / `workspace` / `custom` | 统一控制 Runtime、Documents、Memory Spaces 和预留 state 根目录 |
43
- | `dataDir` | 未设置 | 绝对路径、`~` 或 `~/...` | `custom` 时必填;旧配置只设置它时自动解析为 `custom` |
44
- | `cliPath` | 自动发现 | 可执行路径 | 显式指定 Mnemon CLI |
45
- | `store` | 未设置 | `[A-Za-z0-9][A-Za-z0-9_-]*` | 用于旧 Store 的兼容发现/首选提示;语义操作由 Memory Space 路由 |
46
- | `timeoutMs` | `10000` | 100–120000 ms | 单次 CLI 硬超时 |
47
- | `defaultRecallLimit` | `10` | 1–50 | 服务和 UI 默认召回条数;不同入口可能再收紧 |
48
- | `routingGuidance` | `true` | boolean | 是否注册额外的分层路由 system section |
49
- | `lifecycleEnabled` | `true` | boolean | 是否启用 pre-step cue 和评分后台审查 |
50
- | `recallMode` | `guided` | `guided` / `off` | 是否注入按需 recall cue;不移除显式召回 |
51
- | `writebackMode` | `guided` | `guided` / `off` | 是否注入热记忆 cue 并启用评分后台审查;不移除显式写入 |
52
- | `idleReviewMs` | `30000` | 5000–600000 ms | 达标后需要连续空闲的时间 |
53
- | `tabEnabled` | `true` | boolean | 是否挂载 `displayMode` 指定的 Web 入口;关闭后 Host RPC、命令和 Agent 工具保持注册 |
54
- | `writeEnabled` | `true` | boolean | 是否暴露语义写工具、写 RPC 和写命令 |
55
- | `mnemon-ui.turnBar` | `true` | boolean | 回合尾记忆活动条;默认开启,**保存后实时生效** |
56
- | `mnemon-ui.saveAction` | `true` | boolean | 已定稿助手回复旁的「存入记忆」图标与确认弹窗;默认开启,**保存后实时生效** |
57
-
58
- `mnemon` Host/存储命名空间和 `mnemon-ui` 浏览器呈现命名空间都实时生效。存储根只会在新运行图初始化成功后原子切换;旧版 `mnemon.conversationInteraction` 仍会作为迁移默认值读取,但新保存只写入 `mnemon-ui`。
59
-
60
- ## 存储范围
61
-
62
- ### `global`
63
-
64
- ```text
65
- MNEMON_DATA_DIR when non-empty
66
- otherwise ~/.mnemon
67
- ```
68
-
69
- 适合希望多个工作区共享 Runtime、Documents 和 Memory Spaces 的用户;其他 Mnemon-enabled Agent 使用相同根时,也可以共享其中的 Mnemon Memory Spaces。
70
-
71
- ### `workspace`
72
-
73
- ```text
74
- Agent / 工具 / 生命周期:resolve(currentSession.header.cwd, ".mnemon")
75
- Web 工作台查看:resolve(workspaceRegistry.get(selectedWorkspaceId).path, ".mnemon")
76
- ```
77
-
78
- 每个 DSH 工作区拥有独立的三层记忆根。Agent、模型工具、命令和生命周期按当前会话的 cwd 路由,不受 Web 工作台查看目标影响。工作台只能从 Host 已登记的工作区中选择,不能提交任意路径;查看目标与会话实际目录不一致时,顶部会显示两条路径并提供“一键对齐当前会话”。需要 Agent 子任务的操作在未对齐时会被 Host 拒绝,避免写入错误项目。
79
-
80
- ### `custom`
81
-
82
- ```yaml
83
- mnemon:
84
- storageScope: custom
85
- dataDir: /absolute/path/to/mnemon-data
86
- ```
87
-
88
- 也允许 `~` 和 `~/...`。相对路径会被拒绝。
89
-
90
- ### 选择跨 Agent 共享范围
91
-
92
- | 目标 | 推荐范围 | 说明 |
93
- |---|---|---|
94
- | 本机多个 Agent 共享长期记忆 | `global` | 各方统一使用 `~/.mnemon` 或同一个 `MNEMON_DATA_DIR` |
95
- | 多个 Agent 共享指定数据根 | `custom` | 各方显式配置同一个绝对目录,便于隔离和备份 |
96
- | 只在一个项目内共享 | `workspace` | 各方都需要把 Mnemon 根对齐到该项目的 `<workspace>/.mnemon` |
97
-
98
- 只有 `data/<store>/mnemon.db` 中的 Mnemon 长期层具备原生跨 Agent 互操作性。Runtime、Documents、DSH 的激活状态和 UI 元数据仍属于 dsh-mnemon 管理范围。
99
-
100
- ## CLI 发现优先级
101
-
102
- ```text
103
- config.cliPath
104
- -> executable MNEMON_CLI_PATH
105
- -> each PATH directory
106
- -> Windows: GOBIN/mnemon.exe
107
- first GOPATH/bin/mnemon.exe, or ~/go/bin/mnemon.exe
108
- %LOCALAPPDATA%/Programs/mnemon/mnemon.exe
109
- %ProgramFiles%/mnemon/mnemon.exe
110
- -> Unix: ~/.local/bin/mnemon
111
- /opt/homebrew/bin/mnemon
112
- /usr/local/bin/mnemon
113
- /usr/bin/mnemon
114
- ```
115
-
116
- 显式 `cliPath` 会被采用;若它不可执行,实际调用会返回启动错误。Windows 自动发现只接受普通 `.exe` 文件;进程执行不使用 shell,因此有意排除 `.cmd` 与 `.bat` wrapper。
117
-
118
- ## 兼容 Store 提示优先级
119
-
120
- ```text
121
- config.store
122
- -> MNEMON_STORE
123
- -> <storageRoot>/active
124
- -> default
125
- ```
126
-
127
- Memory Space 目录建立后,长期语义操作使用明确的记忆体 ID,不依赖全局 active Store 进行路由。
128
-
129
- ## Provider 要求
130
-
131
- 普通 worker 会优先选择 `spawn`;如果没有该名称,可以选择另一个具备全部能力的 provider:
132
-
133
- ```text
134
- outputSchema = true
135
- toolFilter = true
136
- persona = true
137
- depthLimit = true
138
- ```
139
-
140
- 后台审查没有回退:必须存在名为 `fork` 的兼容 provider,并且:
141
-
142
- ```text
143
- inheritsParentContext = true
144
- ```
145
-
146
- 缺少 `fork` 不会阻止确定性状态或普通 UI 读取,但达到审查门槛时会记录 subagent 失败。
147
-
148
- ## 只读配置
149
-
150
- ```yaml
151
- mnemon:
152
- writeEnabled: false
153
- ```
154
-
155
- 效果:
156
-
157
- - 不注册模型写工具;
158
- - 不注册 `/dsh-mnemon-write` RPC;
159
- - `/mnemon remember` 和 `/mnemon forget` 拒绝;
160
- - `MnemonService` 的语义 mutation 拒绝。
161
-
162
- 它是“功能只读”,不是文件系统只读模式:Runtime 控制器仍可能初始化或修复投影,Document 搜索会更新 LRU 访问时间,Mnemon 读命令也可能触发上游数据库迁移。不要把 `writeEnabled=false` 用作只读挂载的安全承诺。
163
-
164
- ## 开关交互
165
-
166
- ```text
167
- writeEnabled=false
168
- -> overrides all explicit semantic writes
169
-
170
- writebackMode=off
171
- -> no write cue, no scored review
172
- -> explicit writes remain when writeEnabled=true
173
-
174
- recallMode=off
175
- -> no recall cue
176
- -> explicit recall remains
177
-
178
- lifecycleEnabled=false
179
- -> no lifecycle cues or review
180
- -> UI, commands, and explicit tools remain
181
-
182
- routingGuidance=false
183
- -> removes only mnemon:routing
184
- -> runtime-memory prompt section remains
185
- ```
186
-
187
- ## 展示形态与 `tabEnabled` 界面开关
188
-
189
- `displayMode=sidebar`(默认)会挂载“记忆系统”侧边栏入口和独立主内容区工作台,并使用无 Mnemon Logo 的 DSH 官方风格极简皮肤;`displayMode=buildin` 会改为注册原有的 DSH `conversation.view` 内嵌标签页并保持既有视觉。两者共享功能工作台,但外观定义隔离。设置页保存后会先卸载当前入口再挂载目标入口,因此两种形态不会同时出现。
190
-
191
- `tabEnabled=false` 会实时移除当前形态的 Web 入口。为避免运行中的 Agent 或命令因界面设置变化而失效,Host RPC、命令和工具不会随展示形态或总开关卸载。
192
-
193
- ## Profile patch 覆盖
194
-
195
- 包内 `cordis.patch.yml` 提供默认 config 行。DSH profile 的同 ID 配置可能整体覆盖这行。不要在 profile 的最终 patch 中只增加 `cliPath`;请改用 `MNEMON_CLI_PATH` 或用户设置 `mnemon.cliPath`。确因其他原因需要自定义 profile patch 时,应保留仍需启用的全部键,而不是假设深合并。
196
-
197
- ## 常见配置
198
-
199
- 工作区隔离:
200
-
201
- ```yaml
202
- mnemon:
203
- storageScope: workspace
204
- ```
205
-
206
- 显式指定 Windows CLI 路径:
207
-
208
- ```yaml
209
- mnemon:
210
- cliPath: 'C:\Users\alice\AppData\Local\Programs\mnemon\mnemon.exe'
211
- ```
212
-
213
- 自定义数据盘和较长 CLI 超时:
214
-
215
- ```yaml
216
- mnemon:
217
- storageScope: custom
218
- dataDir: /Volumes/AgentData/mnemon
219
- timeoutMs: 30000
220
- ```
221
-
222
- 保留显式工具、关闭生命周期行为:
223
-
224
- ```yaml
225
- mnemon:
226
- lifecycleEnabled: false
227
- ```
228
-
229
- 仅关闭后台写回判断:
230
-
231
- ```yaml
232
- mnemon:
233
- writebackMode: off
234
- ```
@@ -1,198 +0,0 @@
1
- # 开发与验证
2
-
3
- **简体中文** | [English](../en/development.md) | [文档中心](./README.md)
4
-
5
- ## 环境
6
-
7
- 仓库没有在 `package.json` 中声明 Node、pnpm、DSH 或 Mnemon 的最低版本。使用当前 DSH 开发环境,并在升级依赖时通过完整验证链路确认兼容性。
8
-
9
- 安装依赖:
10
-
11
- ```sh
12
- pnpm install
13
- ```
14
-
15
- ## 标准命令
16
-
17
- ```sh
18
- pnpm run typecheck # tsc --noEmit
19
- pnpm test # vitest run
20
- pnpm run build # declarations + host/client bundles
21
- pnpm run verify # typecheck + test + build
22
- ```
23
-
24
- ## 目录结构
25
-
26
- ```text
27
- src/
28
- +-- index.ts # Host composition root
29
- +-- config.ts # settings schema
30
- +-- process.ts / runner.ts # local CLI execution
31
- +-- service.ts # durable-memory facade
32
- +-- memory-bodies.ts # Memory Space registry
33
- +-- runtime-memory.ts # hot-memory authority
34
- +-- documents.ts # managed Documents
35
- +-- subagent.ts # bounded workers
36
- +-- lifecycle.ts # root-Agent hooks
37
- +-- review-activity.ts # activity score
38
- +-- tools.ts / commands.ts # model and human interfaces
39
- +-- rpc.ts / settings.ts # Web bridges
40
- +-- storage-scope.ts # storage inventory
41
- +-- client/ # React workspace and locales
42
- tests/ # Vitest suites
43
- lib/ # committed build artifacts
44
- docs/zh-CN/ # Chinese documentation
45
- docs/en/ # English mirror
46
- cordis.patch.yml # DSH profile bundle patch
47
- ```
48
-
49
- ## 构建产物
50
-
51
- ```text
52
- tsc -p tsconfig.build.json
53
- -> lib/types/* declarations, maps, intermediate ESM
54
-
55
- tsdown host bundle
56
- -> lib/index.js Node ES2024 ESM
57
-
58
- tsdown client bundle
59
- -> lib/client.js DSH browser module wrapper
60
- -> lib/client.js.map
61
-
62
- lightningcss plugin
63
- -> CSS Modules compiled and injected as scoped <style>
64
- ```
65
-
66
- Host 保持 `cordis` 和 `schemastery` external。Client 保持 React、ReactDOM、JSX runtime 和 Cordis external,其余依赖打入 bundle。
67
-
68
- `lib/` 是发布输入的一部分。修改 `src/` 后必须重新构建并检查生成 diff;不要手工编辑 `lib/`。
69
-
70
- ## 测试层次
71
-
72
- 现有 Vitest 套件覆盖:
73
-
74
- - 配置解析、CLI 查找、进程串行;
75
- - Memory Space 发现、激活、路由与合并;
76
- - recall payload 兼容和图谱解析;
77
- - Runtime JSON/Markdown 一致性、锁、容量、UTF-8 和 revision;
78
- - Documents 路径、frontmatter、搜索、LRU、归档与冲突;
79
- - worker 工具隔离、schema 子集、结构化回执;
80
- - 生命周期 cue、评分、idle debounce、取消和水位保留;
81
- - RPC authority、只读行为和设置 revision;
82
- - Web 工作台、双语文案和关键交互。
83
-
84
- 这些主要是临时目录、fake runner 和 mock Host 集成测试,不等同于自动化的真实 DSH + Mnemon WebUI E2E。
85
-
86
- ## 真实 WebUI 验证
87
-
88
- 发布前使用隔离环境,避免污染个人记忆:
89
-
90
- ```text
91
- temporary DSH_HOME
92
- temporary MNEMON_DATA_DIR or custom storageScope
93
- temporary workspace
94
- independent Web port
95
- local link installation
96
- ```
97
-
98
- 建议场景:
99
-
100
- 1. 空根:UI 不报错,能够创建第一个 Memory Space。
101
- 2. 普通对话:只出现短 cue,不强制 recall 或写入。
102
- 3. 历史问题:Agent 自主 recall,并返回正确 space provenance。
103
- 4. 显式沉淀:worker 查重、选择范围并可被再次召回。
104
- 5. 多空间:读取只覆盖 active,写入 inactive 后自动激活。
105
- 6. Runtime:USER / MEMORY add、replace、remove 和投影一致。
106
- 7. Documents:创建、检索、更新、人工归档和原项目文件不变。
107
- 8. 评分审查:轻任务不触发;达标后等待 idle;新 turn 能取消并保留水位。
108
- 9. 只读:写工具、写命令和写 RPC 被拒绝,读取仍可用。
109
- 10. Sidebar:四个一级标签、记忆体四个二级标签、固定页头、筛选与加载更多均正常。
110
- 11. 对话内交互:本回合记忆只在已完成且有活动的回合出现;跳转目标正确;存入记忆取消不写入。
111
- 12. 设置:Sidebar / Buildin、存储范围与两个对话开关保存后实时生效,不需要刷新。
112
- 13. ZIP:导出后可预检,并能在隔离 custom 根完成合并恢复;损坏 checksum 必须拒绝。
113
- 14. 版本:检查不会安装;link / 手工来源不显示不安全更新;更新完成后自动重新检查状态。
114
- 15. 状态和浏览器控制台:无未处理错误或警告。
115
-
116
- 容量极限、CLI 超时、revision 冲突和 Host 重启应在专用故障注入环境验证。
117
-
118
- ## 维护文档视觉素材
119
-
120
- 公开 UI 截图统一位于 `docs/assets/screenshots/`,中英文文档复用同一组实机画面;语言相关架构图分别保存在 `docs/assets/diagrams/zh-CN/` 与 `docs/assets/diagrams/en/`。界面结构、主要文案或默认行为变化时:
121
-
122
- 1. 使用真实 DSH Web profile,但先检查画面中没有 token、凭据或不应公开的个人数据;
123
- 2. 只做查看、筛选、展开与打开弹窗等可逆交互;需要展示写入前流程时停在最终确认之前;
124
- 3. 覆盖同职责截图,避免按版本不断累积文件名;只有新增用户任务时才增加素材;
125
- 4. 同步 README 海报、GIF / MP4 演示和 `ui-guide.md`;
126
- 5. 检查 PNG / JPEG 扩展名与真实编码一致,并在原始分辨率下确认文字可读;
127
- 6. 删除已无引用、展示旧 Buildin 布局或术语过时的截图;
128
- 7. 运行链接与图片检查,再人工打开中英文 README 和 UI 指南。
129
-
130
- README 演示资源位于 `docs/assets/media/dsh-mnemon-memory-system-demo.*`。演示应覆盖状态、运行时、记忆体、档案和对话内确认,但不要用自动化真正提交记忆、更新组件或更改设置。
131
-
132
- ## 修改 subagent schema
133
-
134
- DSH structured output 只支持一个紧凑 JSON Schema 子集:
135
-
136
- ```text
137
- type, oneOf, properties, required, additionalProperties,
138
- items, enum, const, and annotation keywords
139
- ```
140
-
141
- 不要加入 `maxItems` 等不受支持关键字。`assertDshOutputSchema()` 会在启动 worker 前递归拒绝未知 schema 键;结果数量等限制由 persona 和 Host parser 双重实现。
142
-
143
- ## 修改存储格式
144
-
145
- Runtime、Documents 和 Memory Space registry 都带版本字段或固定结构。修改时需要:
146
-
147
- 1. 明确旧格式解析策略;
148
- 2. 增加迁移或拒绝路径;
149
- 3. 保证临时文件与原子 rename;
150
- 4. 补充并发和损坏输入测试;
151
- 5. 更新中英文存储、运维和 Roadmap 文档;
152
- 6. 在复制的数据根上完成升级/回退验证。
153
-
154
- 当前没有正式 schema migration 框架,不应静默改变持久格式。
155
-
156
- ## 文档国际化维护
157
-
158
- `docs/zh-CN` 与 `docs/en` 应保持同名文件和相同章节职责。修改默认值、流程或限制时:
159
-
160
- - 同步两种语言;
161
- - 保持命令、配置键、路径和代码符号完全一致;
162
- - 使用相对路径互链对应语言页面;
163
- - 架构总览优先使用可访问、无脚本和无外部资源的 SVG;目录树、命令、公式与短协议仍使用可复制的 `text` / ASCII;
164
- - 根 README 只保留摘要,把细节放到单一权威 docs 页面;
165
- - 所有用户可感知界面变化同步检查 `ui-guide.md`、`getting-started.md`、`configuration.md` 与 `operations.md`。
166
-
167
- Web locale 变更时,中文键集合仍是类型事实源;英文词典必须满足 `Record<MnemonKey, string>`,并保持占位符一致。
168
-
169
- ## 发布检查
170
-
171
- ```text
172
- [ ] pnpm run verify
173
- [ ] review source and generated lib diffs
174
- [ ] validate package file list includes README.md, README.zh-CN.md, docs/assets and bilingual docs
175
- [ ] install the built/local bundle into an isolated Web profile
176
- [ ] run real Mnemon CLI and WebUI smoke tests
177
- [ ] verify Chinese and English workspaces
178
- [ ] verify global/workspace/custom paths as applicable
179
- [ ] record tested DSH and Mnemon versions
180
- [ ] back up any data root used for upgrade testing
181
- ```
182
-
183
- `package.json.files` 当前发布 `lib`、patch、两份根 README、统一管理的文档视觉素材、双语公开 docs 和 License。
184
-
185
- ## 发布到 npm
186
-
187
- 发布后 `dsh plugin --profile web add dsh-mnemon` 即按 registry 名称解析(与 dsh-better-sidebar 同路径)。发布步骤:
188
-
189
- ```sh
190
- npm pack --dry-run # 检查 tarball 文件清单(含 cordis.patch.yml、lib、docs)
191
- pnpm publish --access public # prepublishOnly 会先跑 pnpm run verify
192
- ```
193
-
194
- 凭据约定:NPM_TOKEN 只写入用户级 `~/.npmrc`(`npm config set "//registry.npmjs.org/:_authToken" "${NPM_TOKEN}" --userconfig ~/.npmrc`),发布后删除。**不要**把凭据行提交进仓库 `.npmrc`:pnpm 11 出于安全会忽略项目级 `.npmrc` 中未展开的环境变量凭据并告警,且该文件会随仓库传播。
195
-
196
- 2FA 注意:若 npm 账号开启发布级两步验证,交互发布直接执行 `pnpm publish --access public`,按提示输入 OTP;脚本/CI 发布需改用 Classic **Automation** 令牌或允许 bypass 2FA 的 Granular 令牌(`npm login` 生成的普通令牌无法发布,会报 403 Two-factor authentication required)。
197
-
198
- 发布前核对 `package.json` 的 `repository`/`homepage`/`bugs` 指向 `omdsh-dev/dsh-mnemon`(npm 页面与 GitHub 保持一致),并确认版本号已递增。
@@ -1,199 +0,0 @@
1
- # 快速开始
2
-
3
- **简体中文** | [English](../en/getting-started.md) | [文档中心](./README.md)
4
-
5
- 本页从空白环境走到第一次可验证召回。默认采用 Sidebar 和全局存储;如果你已经安装完成,可直接跳到[首次验证](#6-完成第一次验证)。
6
-
7
- ## 1. 前置条件
8
-
9
- 你需要:
10
-
11
- - 一个可以启动的 DSH Web profile;
12
- - 本地可执行的 `mnemon` CLI;
13
- - 一个可用于隔离记忆任务的 DSH subagent Provider。
14
-
15
- 普通语义任务优先使用名为 `spawn` 的 Provider,并要求 `outputSchema`、`toolFilter`、`persona` 与 `depthLimit`。可选的评分后台审查还要求名为 `fork`、且 `inheritsParentContext=true` 的 Provider。缺少 `fork` 不影响确定性页面读取和普通手动操作。
16
-
17
- 项目当前不声明固定的 DSH / Mnemon 最低版本矩阵。本文与截图以 dsh-mnemon v0.1.5 为基线;升级前先备份,并在隔离目录重复本页验证。
18
-
19
- ## 2. 安装 Mnemon
20
-
21
- macOS 推荐 Homebrew Cask:
22
-
23
- ```sh
24
- brew install --cask mnemon-dev/tap/mnemon
25
- ```
26
-
27
- macOS 和 Linux 可通过 Go 安装:
28
-
29
- ```sh
30
- go install github.com/mnemon-dev/mnemon@latest
31
- ```
32
-
33
- 验证二进制:
34
-
35
- ```sh
36
- mnemon --version
37
- ```
38
-
39
- Windows 官方发行包同时提供 AMD64 与 ARM64 ZIP。下面的 PowerShell 会把 v0.2.3 安装到可自动发现的用户 Programs 目录,并使用官方 checksum 校验下载内容:
40
-
41
- ```powershell
42
- $version = '0.2.3'
43
- $arch = if ([System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture -eq 'Arm64') { 'arm64' } else { 'amd64' }
44
- $archiveName = "mnemon_${version}_windows_${arch}.zip"
45
- $releaseBase = "https://github.com/mnemon-dev/mnemon/releases/download/v${version}"
46
- $archive = Join-Path $env:TEMP $archiveName
47
- $checksumFile = Join-Path $env:TEMP "mnemon_${version}_checksums.txt"
48
- Invoke-WebRequest "${releaseBase}/${archiveName}" -OutFile $archive
49
- Invoke-WebRequest "${releaseBase}/checksums.txt" -OutFile $checksumFile
50
- $line = Get-Content $checksumFile | Where-Object { $_.EndsWith(" $archiveName") } | Select-Object -First 1
51
- if (-not $line) { throw "Checksum entry not found for $archiveName" }
52
- $expected = (($line -split '\s+')[0]).ToLowerInvariant()
53
- $actual = (Get-FileHash -Path $archive -Algorithm SHA256).Hash.ToLowerInvariant()
54
- if ($actual -ne $expected) { throw "Checksum mismatch for $archiveName" }
55
- $installDir = Join-Path $env:LOCALAPPDATA 'Programs\mnemon'
56
- New-Item -ItemType Directory -Force -Path $installDir | Out-Null
57
- Expand-Archive -Path $archive -DestinationPath $installDir -Force
58
- $mnemon = Join-Path $installDir 'mnemon.exe'
59
- & $mnemon --version
60
- ```
61
-
62
- 如果已经安装 Go 工具链,也可以继续使用 Go:
63
-
64
- ```powershell
65
- go install github.com/mnemon-dev/mnemon@latest
66
- $mnemonBin = go env GOBIN
67
- if (-not $mnemonBin) {
68
- $mnemonBin = Join-Path (((go env GOPATH) -split ';')[0]) 'bin'
69
- }
70
- $mnemon = Join-Path $mnemonBin 'mnemon.exe'
71
- & $mnemon --version
72
- ```
73
-
74
- Windows 上,dsh-mnemon 会从 `PATH`、导出的 `GOBIN` 或 `GOPATH`、默认 `%USERPROFILE%\go\bin`、`%LOCALAPPDATA%\Programs\mnemon` 和 Program Files 中发现原生 `mnemon.exe`。CLI 调用刻意禁用 shell,因此不接受 `.cmd` 与 `.bat` wrapper。
75
-
76
- 如果 DSH 仍无法找到二进制,请设置 `MNEMON_CLI_PATH`,或在用户 settings 中写入绝对路径;不要为此整体替换插件的 profile patch:
77
-
78
- ```yaml
79
- mnemon:
80
- cliPath: 'C:\Users\alice\AppData\Local\Programs\mnemon\mnemon.exe'
81
- ```
82
-
83
- `mnemon status` 会打开有效 Store,可能初始化数据或执行上游迁移,不要把它当作完全无副作用的安装探测。
84
-
85
- ## 3. 安装 dsh-mnemon
86
-
87
- 安装到 Web profile:
88
-
89
- ```sh
90
- dsh plugin --profile web add dsh-mnemon
91
- ```
92
-
93
- 开发检出使用绝对路径:
94
-
95
- ```sh
96
- dsh plugin --profile web add "link:/absolute/path/to/dsh-mnemon"
97
- ```
98
-
99
- 然后启动或重启 profile:
100
-
101
- ```sh
102
- dsh --profile web
103
- ```
104
-
105
- 升级与卸载:
106
-
107
- ```sh
108
- dsh plugin --profile web update dsh-mnemon
109
- dsh plugin --profile web remove dsh-mnemon
110
- ```
111
-
112
- 卸载只移除插件注册,不删除全局、工作区或自定义目录中的记忆数据。
113
-
114
- ## 4. 选择入口与存储位置
115
-
116
- 打开“设置 → 记忆系统”:
117
-
118
- [![记忆系统设置:展示形态、存储位置、对话界面与备份](../assets/screenshots/settings-memory-system.png)](../assets/screenshots/settings-memory-system.png)
119
-
120
- ### 展示形态
121
-
122
- - **Sidebar**(默认):从 DSH 左侧栏进入独立工作台;适合绝大多数用户。
123
- - **Buildin**:使用原有对话区标签页,并保留既有视觉。
124
-
125
- ### 存储位置
126
-
127
- | 范围 | 根目录 | 适合场景 |
128
- |---|---|---|
129
- | **全局**(默认) | `MNEMON_DATA_DIR` 或 `~/.mnemon` | 多个工作区共享同一套记忆 |
130
- | **工作区** | `<workspace>/.mnemon` | 项目隔离,并允许在工作台切换查看其他工作区 |
131
- | **自定义** | `dataDir` | 专用磁盘、挂载卷或明确的数据目录 |
132
-
133
- 点击保存后会先初始化新运行图,再原子切换 Host;页面自动清理旧状态并重新读取,无需刷新浏览器。切换范围不会自动迁移、合并或删除旧数据。
134
-
135
- 在工作区模式下,工作台选择器只决定“正在查看哪套数据”;Agent、工具与生命周期实际使用的目录始终跟随当前会话。两者不一致时顶部会提示并提供一键对齐。
136
-
137
- ## 5. 打开 Sidebar 工作台
138
-
139
- 点击左侧栏“记忆系统”,先查看“状态”:
140
-
141
- [![状态页:CLI、版本、运行时、记忆体、档案与存储根](../assets/screenshots/status-overview.png)](../assets/screenshots/status-overview.png)
142
-
143
- 确认:
144
-
145
- - 右上角显示“已连接”;
146
- - Mnemon 与 dsh-mnemon 能显示当前版本;
147
- - 存储根与刚才选择的范围一致;
148
- - Runtime、Memory Spaces 和 Documents 没有错误提示。
149
-
150
- 如果 Mnemon 不可用,macOS/Linux 先运行 `command -v mnemon` 与 `mnemon --version`;Windows PowerShell 运行 `Get-Command mnemon` 与 `Test-Path "$env:LOCALAPPDATA\Programs\mnemon\mnemon.exe"`。更多症状见[故障排查](./operations.md#故障排查)。
151
-
152
- ## 6. 完成第一次验证
153
-
154
- ### 创建记忆体
155
-
156
- 1. 打开“记忆体 → 概览”。
157
- 2. 点击“创建记忆体”。
158
- 3. 使用主题明确的名称,例如“项目决策”。
159
- 4. 在说明中写清“哪些内容属于这里,以及什么任务应召回它”。
160
- 5. 开启读取激活开关。
161
-
162
- ### 沉淀一条测试信息
163
-
164
- 点击右上角“沉淀记忆”,填写一条稳定、自包含、未来仍有用且不含秘密的信息。默认不要展开高级选项,让记忆子 Agent 自己选择目标、查重与提炼。
165
-
166
- 只有点击“调度子 Agent 判断并沉淀”才会启动写入;取消弹窗不会改变状态。
167
-
168
- ### 验证召回
169
-
170
- 1. 打开“记忆体 → 检索”。
171
- 2. 输入一个能命中刚才内容的具体问题。
172
- 3. 先用“直接检索”检查原始证据。
173
- 4. 确认结果包含记忆体来源、分类、重要性、分数和 ID。
174
-
175
- 也可以在对话中运行:
176
-
177
- ```text
178
- /mnemon status
179
- /mnemon recall <聚焦查询>
180
- ```
181
-
182
- ## 7. 验证对话内记忆
183
-
184
- 在一个确实依赖历史信息的问题中,让 Agent 自主判断是否需要召回。完成后:
185
-
186
- - 若本轮调用了记忆工具,回复下方会出现“本回合记忆”;
187
- - 展开后可以看到具体工具名,并点击跳到对应页面;
188
- - “存入记忆”会先打开可编辑确认弹窗,取消不会写入。
189
-
190
- [![本回合记忆与工具跳转](../assets/screenshots/conversation-turn-memory.png)](../assets/screenshots/conversation-turn-memory.png)
191
-
192
- 普通聊天不应强制召回。当前请求、现有源文件和实时工具结果应优先于历史内容。
193
-
194
- ## 8. 下一步
195
-
196
- - 用 [Sidebar 与对话交互指南](./ui-guide.md) 认识全部页面。
197
- - 用[存储模型](./storage-model.md)决定信息应进入运行时、档案还是记忆体。
198
- - 用[配置参考](./configuration.md)设置工作区范围、只读模式或生命周期开关。
199
- - 用[运维指南](./operations.md)导出第一份 ZIP 备份并建立升级前检查流程。