dsh-mnemon 0.1.1 → 0.1.3

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 (176) hide show
  1. package/README.en.md +88 -120
  2. package/README.md +89 -121
  3. package/cordis.patch.yml +1 -0
  4. package/docs/assets/diagrams/en/memory-system-flow.png +0 -0
  5. package/docs/assets/diagrams/zh-CN/memory-system-flow.png +0 -0
  6. package/docs/assets/media/dsh-mnemon-memory-system-demo-poster.jpg +0 -0
  7. package/docs/assets/media/dsh-mnemon-memory-system-demo.gif +0 -0
  8. package/docs/assets/media/dsh-mnemon-memory-system-demo.mp4 +0 -0
  9. package/docs/assets/screenshots/conversation-memory-jump.png +0 -0
  10. package/docs/assets/screenshots/conversation-save-dialog.png +0 -0
  11. package/docs/assets/screenshots/conversation-turn-memory.png +0 -0
  12. package/docs/assets/screenshots/document-create-dialog.png +0 -0
  13. package/docs/assets/screenshots/documents-markdown.png +0 -0
  14. package/docs/assets/screenshots/entities-context.png +0 -0
  15. package/docs/assets/screenshots/memory-content.png +0 -0
  16. package/docs/assets/screenshots/overview-memory-graph.png +0 -0
  17. package/docs/assets/screenshots/recall-agent-answer.png +0 -0
  18. package/docs/assets/screenshots/remember-dialog.png +0 -0
  19. package/docs/assets/screenshots/runtime-memory-add.png +0 -0
  20. package/docs/assets/screenshots/runtime-memory.png +0 -0
  21. package/docs/assets/screenshots/settings-memory-system.png +0 -0
  22. package/docs/assets/screenshots/status-overview.png +0 -0
  23. package/docs/assets/screenshots/version-check.png +0 -0
  24. package/docs/en/README.md +38 -32
  25. package/docs/en/architecture.md +3 -1
  26. package/docs/en/configuration.md +13 -9
  27. package/docs/en/development.md +24 -4
  28. package/docs/en/getting-started.md +78 -86
  29. package/docs/en/interfaces.md +99 -89
  30. package/docs/en/operations.md +103 -92
  31. package/docs/en/project-overview.md +82 -196
  32. package/docs/en/roadmap.md +1 -1
  33. package/docs/en/storage-model.md +1 -1
  34. package/docs/en/ui-guide.md +156 -0
  35. package/docs/zh-CN/README.md +35 -29
  36. package/docs/zh-CN/architecture.md +3 -1
  37. package/docs/zh-CN/configuration.md +13 -9
  38. package/docs/zh-CN/development.md +24 -4
  39. package/docs/zh-CN/getting-started.md +71 -79
  40. package/docs/zh-CN/interfaces.md +84 -74
  41. package/docs/zh-CN/operations.md +96 -85
  42. package/docs/zh-CN/project-overview.md +78 -192
  43. package/docs/zh-CN/roadmap.md +1 -1
  44. package/docs/zh-CN/storage-model.md +1 -1
  45. package/docs/zh-CN/ui-guide.md +160 -0
  46. package/lib/client.js +2836 -2041
  47. package/lib/client.js.map +1 -1
  48. package/lib/index.js +715 -124
  49. package/lib/types/channels.d.ts +4 -0
  50. package/lib/types/channels.d.ts.map +1 -0
  51. package/lib/types/channels.js +4 -0
  52. package/lib/types/channels.js.map +1 -0
  53. package/lib/types/client/MnemonSaveAction.d.ts.map +1 -1
  54. package/lib/types/client/MnemonSaveAction.js +4 -55
  55. package/lib/types/client/MnemonSaveAction.js.map +1 -1
  56. package/lib/types/client/MnemonSettingsCard.d.ts +1 -3
  57. package/lib/types/client/MnemonSettingsCard.d.ts.map +1 -1
  58. package/lib/types/client/MnemonSettingsCard.js +13 -31
  59. package/lib/types/client/MnemonSettingsCard.js.map +1 -1
  60. package/lib/types/client/MnemonTurnTail.d.ts +3 -0
  61. package/lib/types/client/MnemonTurnTail.d.ts.map +1 -1
  62. package/lib/types/client/MnemonTurnTail.js +15 -3
  63. package/lib/types/client/MnemonTurnTail.js.map +1 -1
  64. package/lib/types/client/MnemonView.d.ts +17 -0
  65. package/lib/types/client/MnemonView.d.ts.map +1 -1
  66. package/lib/types/client/MnemonView.js +431 -96
  67. package/lib/types/client/MnemonView.js.map +1 -1
  68. package/lib/types/client/MnemonViewAppearance.d.ts +21 -0
  69. package/lib/types/client/MnemonViewAppearance.d.ts.map +1 -0
  70. package/lib/types/client/MnemonViewAppearance.js +67 -0
  71. package/lib/types/client/MnemonViewAppearance.js.map +1 -0
  72. package/lib/types/client/anchor.d.ts +1 -1
  73. package/lib/types/client/anchor.js +1 -1
  74. package/lib/types/client/api.d.ts +7 -1
  75. package/lib/types/client/api.d.ts.map +1 -1
  76. package/lib/types/client/api.js +41 -24
  77. package/lib/types/client/api.js.map +1 -1
  78. package/lib/types/client/index.d.ts +1 -1
  79. package/lib/types/client/index.d.ts.map +1 -1
  80. package/lib/types/client/index.js +63 -53
  81. package/lib/types/client/index.js.map +1 -1
  82. package/lib/types/client/locales.d.ts +158 -306
  83. package/lib/types/client/locales.d.ts.map +1 -1
  84. package/lib/types/client/locales.js +180 -328
  85. package/lib/types/client/locales.js.map +1 -1
  86. package/lib/types/client/settings.d.ts +1 -1
  87. package/lib/types/client/settings.d.ts.map +1 -1
  88. package/lib/types/client/settings.js +1 -1
  89. package/lib/types/client/settings.js.map +1 -1
  90. package/lib/types/client/sidebar-entry.d.ts +6 -0
  91. package/lib/types/client/sidebar-entry.d.ts.map +1 -0
  92. package/lib/types/client/sidebar-entry.js +134 -0
  93. package/lib/types/client/sidebar-entry.js.map +1 -0
  94. package/lib/types/client/workspace-controller.d.ts +15 -0
  95. package/lib/types/client/workspace-controller.d.ts.map +1 -0
  96. package/lib/types/client/workspace-controller.js +21 -0
  97. package/lib/types/client/workspace-controller.js.map +1 -0
  98. package/lib/types/client/workspace-mount.d.ts +8 -0
  99. package/lib/types/client/workspace-mount.d.ts.map +1 -0
  100. package/lib/types/client/workspace-mount.js +138 -0
  101. package/lib/types/client/workspace-mount.js.map +1 -0
  102. package/lib/types/commands.d.ts +10 -2
  103. package/lib/types/commands.d.ts.map +1 -1
  104. package/lib/types/commands.js +5 -1
  105. package/lib/types/commands.js.map +1 -1
  106. package/lib/types/config.d.ts +6 -5
  107. package/lib/types/config.d.ts.map +1 -1
  108. package/lib/types/config.js +12 -12
  109. package/lib/types/config.js.map +1 -1
  110. package/lib/types/contracts.d.ts +11 -0
  111. package/lib/types/contracts.d.ts.map +1 -1
  112. package/lib/types/documents.d.ts.map +1 -1
  113. package/lib/types/documents.js +6 -14
  114. package/lib/types/documents.js.map +1 -1
  115. package/lib/types/guidance.d.ts +3 -1
  116. package/lib/types/guidance.d.ts.map +1 -1
  117. package/lib/types/guidance.js +12 -0
  118. package/lib/types/guidance.js.map +1 -1
  119. package/lib/types/index.d.ts +2 -1
  120. package/lib/types/index.d.ts.map +1 -1
  121. package/lib/types/index.js +9 -8
  122. package/lib/types/index.js.map +1 -1
  123. package/lib/types/lifecycle.d.ts +9 -2
  124. package/lib/types/lifecycle.d.ts.map +1 -1
  125. package/lib/types/lifecycle.js +11 -4
  126. package/lib/types/lifecycle.js.map +1 -1
  127. package/lib/types/live-runtime.d.ts +26 -2
  128. package/lib/types/live-runtime.d.ts.map +1 -1
  129. package/lib/types/live-runtime.js +73 -3
  130. package/lib/types/live-runtime.js.map +1 -1
  131. package/lib/types/memory-bodies.d.ts +1 -0
  132. package/lib/types/memory-bodies.d.ts.map +1 -1
  133. package/lib/types/memory-bodies.js +7 -0
  134. package/lib/types/memory-bodies.js.map +1 -1
  135. package/lib/types/rpc.d.ts +7 -6
  136. package/lib/types/rpc.d.ts.map +1 -1
  137. package/lib/types/rpc.js +139 -22
  138. package/lib/types/rpc.js.map +1 -1
  139. package/lib/types/runner.d.ts +1 -1
  140. package/lib/types/runner.d.ts.map +1 -1
  141. package/lib/types/runner.js +2 -2
  142. package/lib/types/runner.js.map +1 -1
  143. package/lib/types/service.d.ts +18 -0
  144. package/lib/types/service.d.ts.map +1 -1
  145. package/lib/types/service.js +4 -0
  146. package/lib/types/service.js.map +1 -1
  147. package/lib/types/settings.d.ts.map +1 -1
  148. package/lib/types/settings.js +2 -3
  149. package/lib/types/settings.js.map +1 -1
  150. package/lib/types/subagent.d.ts +11 -2
  151. package/lib/types/subagent.d.ts.map +1 -1
  152. package/lib/types/subagent.js +34 -29
  153. package/lib/types/subagent.js.map +1 -1
  154. package/lib/types/tools.d.ts +11 -1
  155. package/lib/types/tools.d.ts.map +1 -1
  156. package/lib/types/tools.js +27 -16
  157. package/lib/types/tools.js.map +1 -1
  158. package/lib/types/version-updates.d.ts +61 -0
  159. package/lib/types/version-updates.d.ts.map +1 -0
  160. package/lib/types/version-updates.js +377 -0
  161. package/lib/types/version-updates.js.map +1 -0
  162. package/package.json +4 -1
  163. package/docs/zh-CN/assets/screenshots/conversation-recall.png +0 -0
  164. package/docs/zh-CN/assets/screenshots/conversation-writeback.png +0 -0
  165. package/docs/zh-CN/assets/screenshots/documents-markdown.png +0 -0
  166. package/docs/zh-CN/assets/screenshots/entities-context.png +0 -0
  167. package/docs/zh-CN/assets/screenshots/memory-content.png +0 -0
  168. package/docs/zh-CN/assets/screenshots/overview-memory-graph.png +0 -0
  169. package/docs/zh-CN/assets/screenshots/recall-agent-answer.png +0 -0
  170. package/docs/zh-CN/assets/screenshots/runtime-memory.png +0 -0
  171. package/lib/types/client/MnemonToolviews.d.ts +0 -19
  172. package/lib/types/client/MnemonToolviews.d.ts.map +0 -1
  173. package/lib/types/client/MnemonToolviews.js +0 -172
  174. package/lib/types/client/MnemonToolviews.js.map +0 -1
  175. /package/docs/{en/assets → assets/diagrams/en}/project-architecture.svg +0 -0
  176. /package/docs/{zh-CN/assets → assets/diagrams/zh-CN}/project-architecture.svg +0 -0
@@ -13,6 +13,8 @@ export const zh = {
13
13
  'nav.group.system': '系统',
14
14
  'nav.group.storage': '三层记忆',
15
15
  'nav.group.tools': '读写工具',
16
+ 'nav.memory.aria': '记忆体页面',
17
+ 'nav.overview': '概览',
16
18
  'nav.bodies': '记忆体',
17
19
  'nav.bodies.detail': '记忆体目录与实时图谱',
18
20
  'nav.runtime': '运行时',
@@ -24,6 +26,7 @@ export const zh = {
24
26
  'nav.entities': '实体',
25
27
  'nav.entities.detail': '关系与上下文',
26
28
  'nav.remember': '沉淀',
29
+ 'nav.rememberAction': '沉淀记忆',
27
30
  'nav.remember.detail': 'LLM 监督写回',
28
31
  'nav.content': '内容',
29
32
  'nav.content.detail': '浏览与维护',
@@ -45,11 +48,25 @@ export const zh = {
45
48
  'common.memories': '{count} 条记忆',
46
49
  'common.edges': '{count} 条连接',
47
50
  'common.count': '{count} 个',
51
+ 'common.showing': '当前显示 {visible} / {total}',
52
+ 'common.showMore': '再显示 {count} 条',
53
+ 'header.backToConversation': '返回会话',
48
54
  'header.checking': '检查中',
49
- 'header.connected': '已连接 · {count} 个已激活',
55
+ 'header.connected': '已连接',
56
+ 'header.connectedWithCount': '已连接 · {count} 个已激活',
50
57
  'header.directoryPending': '已连接 · 目录待同步',
51
58
  'header.unavailable': '不可用',
52
59
  'header.notReady': 'Mnemon 尚未就绪',
60
+ 'workspace.viewing': '查看工作区',
61
+ 'workspace.selectorAria': '选择要查看的记忆工作区',
62
+ 'workspace.storageMode': '存储位置',
63
+ 'workspace.storageModeAria': '存储位置模式:{mode}',
64
+ 'workspace.mismatchTitle': '查看目录与当前会话未对齐',
65
+ 'workspace.mismatchShort': '非对话工作区',
66
+ 'workspace.mismatchDescription': '工作台操作面向当前查看目录;Agent、工具和生命周期仍使用当前会话目录。',
67
+ 'workspace.selectedRoot': '查看:{root}',
68
+ 'workspace.effectiveRoot': '生效:{root}',
69
+ 'workspace.align': '对齐对话',
53
70
  'telemetry.aria': '记忆统计',
54
71
  'telemetry.title': '记忆统计',
55
72
  'telemetry.memories': '激活记忆',
@@ -59,6 +76,7 @@ export const zh = {
59
76
  'sidebar.activeSpaces': '已激活记忆体',
60
77
  'overview.title': '记忆体',
61
78
  'overview.description': '管理全局记忆体的读取边界,并在一张实时四图快照中观察所有已激活记忆体。',
79
+ 'overview.pageDescription': '查看目录配置、存储状态以及所有已激活记忆体的实时关联图谱。',
62
80
  'overview.interval': '每 15 秒',
63
81
  'overview.syncing': '同步中…',
64
82
  'overview.syncNow': '立即同步',
@@ -83,6 +101,7 @@ export const zh = {
83
101
  'overview.noContentTitle': '已激活记忆体尚无内容',
84
102
  'overview.noContentText': '向任意记忆体沉淀稳定上下文后,这里会聚合呈现节点与关系。',
85
103
  'overview.create': '+ 创建空白记忆体',
104
+ 'overview.createTitle': '创建记忆体',
86
105
  'overview.createName': '新记忆体名称',
87
106
  'overview.createNamePlaceholder': '名称',
88
107
  'overview.createDescription': '新记忆体描述',
@@ -95,6 +114,12 @@ export const zh = {
95
114
  'overview.editDescription': '路由说明',
96
115
  'overview.saveBody': '保存',
97
116
  'overview.savingBody': '保存中…',
117
+ 'overview.deleteBody': '删除',
118
+ 'overview.deleteBodyAria': '删除{name}',
119
+ 'overview.deleteTitle': '删除“{name}”?',
120
+ 'overview.deleteWarning': '该操作会永久删除这个记忆体及其中的全部记忆与关系,无法撤销。',
121
+ 'overview.deleteAction': '确认删除',
122
+ 'overview.deletingBody': '删除中…',
98
123
  'overview.snapshot': '多记忆体实时快照',
99
124
  'overview.waitingSnapshot': '等待首个快照',
100
125
  'overview.updatedAt': '更新于 {time}',
@@ -123,6 +148,12 @@ export const zh = {
123
148
  'runtime.title': '运行时记忆',
124
149
  'runtime.description': '管理每轮随上下文加载的紧凑热记忆。结构化数据由统一控制层维护,并自动投影为 USER.md 与 MEMORY.md。',
125
150
  'runtime.total': '{count} 条热记忆',
151
+ 'runtime.entriesAria': '运行时记忆列表',
152
+ 'runtime.scopeAria': '运行时记忆范围',
153
+ 'runtime.scopeAll': '全部',
154
+ 'runtime.filterAria': '筛选运行时记忆',
155
+ 'runtime.filterPlaceholder': '按内容筛选…',
156
+ 'runtime.noMatch': '没有符合当前范围与查询条件的热记忆。',
126
157
  'runtime.refresh': '刷新',
127
158
  'runtime.hotContext': '每轮上下文',
128
159
  'runtime.addTitle': '添加热记忆',
@@ -132,6 +163,7 @@ export const zh = {
132
163
  'runtime.target': '分类',
133
164
  'runtime.importance': '重要性',
134
165
  'runtime.saving': '处理中…',
166
+ 'runtime.addButton': '添加记忆',
135
167
  'runtime.addAction': '添加',
136
168
  'runtime.target.user': '用户画像',
137
169
  'runtime.target.user.description': '身份、角色、习惯、表达偏好与明确的协作要求;容量整理始终留在本地,不进入记忆体。',
@@ -146,6 +178,8 @@ export const zh = {
146
178
  'runtime.saveEdit': '保存修改',
147
179
  'runtime.removeAction': '移除',
148
180
  'runtime.removeConfirm': '确认移除这条热记忆?',
181
+ 'runtime.removeTitle': '移除运行时记忆?',
182
+ 'runtime.removeWarning': '移除后,这条内容将不再随每轮上下文加载。该操作无法撤销。',
149
183
  'runtime.result.add': '已添加到{target} · 当前 {count} 条',
150
184
  'runtime.result.replace': '已更新{target} · 当前 {count} 条',
151
185
  'runtime.result.remove': '已从{target}移除 · 当前 {count} 条',
@@ -230,27 +264,6 @@ export const zh = {
230
264
  'card.related': '查看关联',
231
265
  'card.clone': '基于此新建',
232
266
  'card.forget': '忘记',
233
- 'toolview.recallTitle': '记忆召回',
234
- 'toolview.writeTitle': '记忆沉淀',
235
- 'toolview.genericSummary': 'Mnemon 工具调用',
236
- 'toolview.running': '处理中…',
237
- 'toolview.recallSummary': '{query} · {count} 条命中',
238
- 'toolview.relatedSummary': '{id} · 关联 {count} 条',
239
- 'toolview.documentSearchSummary': '{query} · {count} 份档案命中',
240
- 'toolview.statusHealthy': 'Mnemon 引擎正常',
241
- 'toolview.statusUnhealthy': 'Mnemon 引擎异常',
242
- 'toolview.bodiesSummary': '{count} 个记忆体 · {active} 个激活',
243
- 'toolview.runtimeSummary': '{action} {target} 热记忆',
244
- 'toolview.runtimeSummaryWithContent': '{action} {target} 热记忆 · {content}',
245
- 'toolview.documentManageSummary': '{action} 项目档案',
246
- 'toolview.documentManageSummaryWithTitle': '{action} 项目档案 · {title}',
247
- 'toolview.bodyUpdateSummary': '更新记忆体 {id}',
248
- 'toolview.bodyMergeSummary': '合并到 {target} · {count} 个来源',
249
- 'toolview.openView': '在记忆视图中打开',
250
- 'toolview.inspect': '查看轨迹',
251
- 'toolview.args': '参数',
252
- 'toolview.result': '结果',
253
- 'toolview.noResult': '尚无结果',
254
267
  'turnTail.label': '本回合记忆',
255
268
  'turnTail.recall': '召回 {count}',
256
269
  'turnTail.write': '沉淀 {count}',
@@ -258,20 +271,21 @@ export const zh = {
258
271
  'turnTail.inspect': '检查 {count}',
259
272
  'turnTail.failed': '失败 {count}',
260
273
  'turnTail.toolList': '本回合记忆工具',
261
- 'turnTail.openView': '打开记忆视图',
274
+ 'turnTail.openTool': '打开 {tool} 对应的记忆页面',
262
275
  'saveAction.button': '存入记忆',
263
- 'saveAction.title': '将这条回复交给记忆子 Agent',
276
+ 'saveAction.tooltip': '将这条回复存入记忆',
277
+ 'saveAction.title': '确认存入记忆',
264
278
  'saveAction.hint': '子 Agent 会判断是否值得沉淀,并查重、提炼、选择记忆体后写入;不会挤占主对话上下文。',
265
279
  'saveAction.fetching': '提取消息文本…',
266
280
  'saveAction.missing': '无法从会话记录提取这条消息的文本。',
267
281
  'saveAction.candidate': '候选内容(可编辑)',
268
282
  'saveAction.truncated': '原回复较长,这里仅载入前 {limit} 个字符。',
269
- 'saveAction.submit': '交给记忆子 Agent 判断',
283
+ 'saveAction.submit': '确认并交给记忆子 Agent',
270
284
  'saveAction.submitting': '调度中…',
271
285
  'saveAction.result': '记忆子 Agent:{summary}',
272
286
  'saveAction.failed': '调度失败:{error}',
273
287
  'saveAction.readOnly': '当前部署为只读模式,无法写入记忆。',
274
- 'saveAction.close': '收起',
288
+ 'saveAction.close': '关闭',
275
289
  'search.title': '检索记忆',
276
290
  'search.description': '直连 Mnemon 检索原始证据;需要时可让 Agent 只基于命中内容生成答案。',
277
291
  'search.maxResults': '最多 {count} 条',
@@ -361,7 +375,7 @@ export const zh = {
361
375
  'content.emptyTitle': '没有符合条件的记忆',
362
376
  'content.emptyText': '清空筛选,或前往“沉淀”写入第一条稳定上下文。',
363
377
  'status.title': '系统状态',
364
- 'status.description': '聚焦 Mnemon 引擎、记忆体目录和子 Agent 编排;连接配置由 DSH 部署统一管理。',
378
+ 'status.description': '聚焦 Mnemon 引擎、三层存储和当前读写目录;连接配置由 DSH 部署统一管理。',
365
379
  'status.nominal': '系统正常',
366
380
  'status.checkRequired': '需要检查',
367
381
  'status.rechecking': '检查中…',
@@ -372,6 +386,40 @@ export const zh = {
372
386
  'status.engineUnavailable': 'Mnemon 不可用',
373
387
  'status.engineChecking': '正在检查本地引擎',
374
388
  'status.versionWaiting': '等待版本信息',
389
+ 'versions.checkAction': '检查版本',
390
+ 'versions.title': '检查与更新版本',
391
+ 'versions.description': '检查 Mnemon CLI 与 dsh-mnemon;只有识别到受支持的安装方式时才会提供更新操作。',
392
+ 'versions.checking': '正在检查远程仓库中的新版本…',
393
+ 'versions.checkingShort': '检查中…',
394
+ 'versions.recheck': '重新检查',
395
+ 'versions.failed': '版本操作失败',
396
+ 'versions.timeout': '版本检查超时,请检查网络后重试。',
397
+ 'versions.current': '已是最新',
398
+ 'versions.available': '可更新',
399
+ 'versions.unknown': '无法确认',
400
+ 'versions.installed': '当前版本',
401
+ 'versions.latest': '最新版本',
402
+ 'versions.update': '更新',
403
+ 'versions.updating': '更新中…',
404
+ 'versions.updated': '{name} 已更新',
405
+ 'versions.alreadyCurrent': '当前已经是最新版本',
406
+ 'versions.restartRequired': '请重启 dsh web,以加载新的 dsh-mnemon 插件代码。',
407
+ 'versions.checkedAt': '检查于 {time}',
408
+ 'versions.latestUnavailable': '暂时无法读取远程最新版本;请检查网络后重试。',
409
+ 'versions.modeHomebrew': 'Homebrew',
410
+ 'versions.modeGo': 'Go 安装',
411
+ 'versions.modeNpm': 'DSH Profile',
412
+ 'versions.modeLink': '本地 Link',
413
+ 'versions.modeManual': '手工安装',
414
+ 'versions.modeMissing': '未安装',
415
+ 'versions.hintHomebrew': '由 Homebrew 管理;发现新版本时可在此安全更新。',
416
+ 'versions.hintBrewMissing': '检测到 Homebrew 安装,但当前找不到 brew 命令。',
417
+ 'versions.hintGo': '由 go install 管理;发现新版本时可在此安全更新。',
418
+ 'versions.hintPnpm': '由当前 DSH Profile 管理;更新后需要重启 dsh web。',
419
+ 'versions.hintPnpmMissing': '检测到 DSH Profile 安装,但当前找不到 pnpm 命令。',
420
+ 'versions.hintLink': '当前为本地 Link 开发版本;请在源码目录拉取并构建,避免覆盖本地修改。',
421
+ 'versions.hintInstall': '未找到 Mnemon CLI;请先安装并确保 mnemon 位于 PATH,或配置 cliPath。',
422
+ 'versions.hintManual': '无法安全识别安装来源;请沿用原安装方式手工更新。',
375
423
  'status.spaces': '记忆体',
376
424
  'status.activeRatio': '{active} / {total} 已激活',
377
425
  'status.runtime': '运行时',
@@ -386,71 +434,8 @@ export const zh = {
386
434
  'status.documentsSession': '绑定活动会话后可用',
387
435
  'status.documentRatio': '{active} 份活跃 · {archived} 份归档',
388
436
  'status.documentUsage': '{used} / {limit} 活跃容量',
389
- 'status.router': '子 Agent 路由',
390
- 'status.routerReady': '记忆子 Agent 可用',
391
- 'status.sessionMissing': '当前会话未绑定',
392
- 'status.routerChecking': '正在同步会话能力',
393
- 'status.orchestrationWaiting': '等待编排状态',
394
- 'status.workerCounts': '召回 {recalls} · 问答 {answers} · 审查 {reviews} · 档案迁移 {documentArchives} · 热记忆归档 {migrations} · 常规写入 {writes}',
395
- 'status.workerSummary': '召回 {recalls} · 审查 {reviews} · 写入 {writes} · 失败 {failures}',
396
- 'status.lifecycle': '子 Agent 生命周期',
397
- 'status.lifecycleText': 'pre-step 只提供短提示;后台按用户输入、turn、工具调用量与工具多样性累计评分,达标并持续空闲后,由一个 fork 子 Agent 同时审阅热记忆与复杂项目档案。',
398
- 'status.phaseIdle': '待命',
399
- 'status.phaseSupervised': '受监督请求',
400
- 'status.phaseError': '异常',
401
- 'status.phaseReview': '后台审查',
402
- 'status.prime': '轻量预备',
403
- 'status.primeText': '初始化路由状态,不读取目录或记忆',
404
- 'status.recallWorker': '召回处理',
405
- 'status.recallText': 'pre-step 只提醒判断,主模型按需发起召回',
406
- 'status.recallOff': '自动召回已关闭',
407
- 'status.writeWorker': '评分审查',
408
- 'status.writeText': '活动评分达到 {threshold} 后再等待空闲 {seconds} 秒,fork 完整 checkpoint 按需维护热记忆与项目档案',
409
- 'status.writeOff': '后台审查已关闭',
410
- 'status.latestPhase': '最近阶段',
411
- 'status.latestActivity': '最近活动',
412
- 'status.reviewState': '审查状态',
413
- 'status.reviewPending': '评分已达标,等待空闲',
414
- 'status.reviewRunning': '正在审查',
415
- 'status.reviewQualified': '评分已达标,等待本轮完成',
416
- 'status.reviewAccumulating': '累计信号中',
417
- 'status.reviewIdle': '累计信号中',
418
- 'status.activityScore': '活动评分',
419
- 'status.activitySignals': '累计信号',
420
- 'status.activitySignalValues': '{chars} 字符 · {turns} turn · {tools} 次工具 · {unique} 种工具',
421
- 'status.lastReview': '最近审查',
422
- 'status.noReview': '尚未执行',
423
- 'status.reviewAt': '{time} · {action} · 触发分 {score}',
424
- 'status.supervisedRequests': '受监督请求',
425
- 'status.workerFailures': '子 Agent 失败',
426
- 'status.reviewDocuments': '最近更新档案',
427
- 'status.noActivity': '尚无运行记录',
428
- 'status.quickDiagnostics': '快速诊断',
429
- 'status.cliExecutable': 'Mnemon CLI 可执行',
430
- 'status.cliMissing': 'Mnemon CLI 未找到',
431
- 'status.readingSpaces': '{count} 个记忆体参与读取',
432
- 'status.directoryWaiting': '记忆体目录等待 Host 同步',
433
- 'status.webAgentReady': 'WebUI 可创建隔离记忆子 Agent',
434
- 'status.liveSessionMissing': '缺少活动会话',
435
- 'status.lifecycleFailures': '生命周期失败 {count} 次',
436
- 'status.documentsUnavailable': '当前会话的档案目录不可用',
437
- 'status.documentsHealthy': '{count} 份活跃档案可参与近场检索',
438
- 'status.nativeAccess': '原生命令',
439
- 'status.nativeAccessText': '模型侧使用原生 mnemon_* 工具;人工命令不会绕入模型。',
440
- 'status.engineStorage': '引擎与存储',
441
- 'status.online': '在线',
442
- 'status.offline': '离线',
443
- 'status.mnemonVersion': 'Mnemon 版本',
444
- 'status.directory': '记忆体目录',
445
- 'status.activeDbSize': '激活数据库大小',
446
- 'status.activeCount': '已激活',
447
- 'status.activeGraphEdges': '激活图谱连接',
448
- 'status.documentDirectory': '项目档案目录',
449
- 'status.activeDocuments': '活跃档案',
450
- 'status.coldDocuments': '归档',
451
- 'status.documentCapacity': '活跃档案容量',
452
437
  'status.storageDomains': '存储域',
453
- 'status.storageDomainsText': '当前选择决定热记忆、记忆体、项目档案和后台状态共同使用的目录边界。',
438
+ 'status.storageDomainsText': '当前选择决定热记忆、记忆体和项目档案共同使用的目录边界。',
454
439
  'status.storageBrowseOnly': '查看不会切换写入',
455
440
  'status.storageScopeAria': '选择要查看的存储域',
456
441
  'status.storageGlobal': '全局',
@@ -479,84 +464,31 @@ export const zh = {
479
464
  'status.storageStateReady': '审阅水位已经持久化',
480
465
  'status.storageStateVolatile': '当前审阅状态仍由 Host 进程维护',
481
466
  'status.storageFootnote': '当前实际读写根:{root}。存储范围只在 DSH「设置 → 记忆系统」中修改,保存后实时生效;插件不会自动迁移、合并或删除旧内容。',
482
- 'status.flowTitle': '记忆系统流转',
483
- 'status.flowDescription': '按真实执行边界展开每轮注入、确定性文件控制、语义 worker、CLI 数据面、归档与 fork 审查。',
484
- 'status.flowLive': '实时状态',
485
- 'status.flowDegraded': '部分不可用',
486
- 'status.flowConversation': '用户 / 当前任务',
487
- 'status.flowTurns': '当前轮输入与工具轨迹',
488
- 'status.flowSupervisor': 'Root Agent',
489
- 'status.flowEntries': '{count} 条热记忆',
490
- 'status.flowDocuments': '{active} 份活跃 · {archived} 份归档',
491
- 'status.flowContext': '证据 / 回执',
492
- 'status.flowContextDetail': '结构化结果返回当前任务',
493
- 'status.flowReadWrite': '确定性 Host 路径',
494
- 'status.flowArchive': 'LLM 监督路径',
495
- 'status.flowCurrentScope': '当前范围:{scope}',
496
- 'status.flowLaneContext': '每轮上下文',
497
- 'status.flowLaneContextDetail': 'Runtime 每轮注入;Documents 仅按需检索',
498
- 'status.flowLaneSemantic': '按需语义操作',
499
- 'status.flowLaneSemanticDetail': '隔离 worker 决策,Host 服务执行',
500
- 'status.flowLaneMaintenance': '空闲维护与归档',
501
- 'status.flowLaneMaintenanceDetail': 'fork 审查与先索引后迁移',
502
- 'status.flowRuntimeMeta': 'USER.md + MEMORY.md · {count} 条',
503
- 'status.flowPromptAssembly': '每轮 prompt assembly',
504
- 'status.flowDocumentSearch': 'Document 确定性检索',
505
- 'status.flowOnDemand': '按需,不注入全文',
506
- 'status.flowRootMeta': '路由工具调用,不直接访问 SQLite',
507
- 'status.flowStructuredReturn': '结构化证据 / 回执',
508
- 'status.flowEvidenceMeta': '带来源返回 Root Agent',
509
- 'status.flowSemanticRequest': 'recall · write · related',
510
- 'status.flowSpawnWorker': 'spawn 隔离 worker',
511
- 'status.flowSpawnMeta': '语义判断 · 最小工具白名单',
512
- 'status.flowService': 'MnemonService',
513
- 'status.flowServiceMeta': '校验 · 归一化 · 聚合',
514
- 'status.flowRunnerCli': 'Runner → 本地 CLI',
515
- 'status.flowRunnerCliMeta': '超时 / 取消 / JSON 进程边界',
516
- 'status.flowHostBridge': 'Mnemon Host Bridge',
517
- 'status.flowHostBridgeMeta': 'Service → Runner → 本地 CLI',
518
- 'status.flowSpacesMeta': '{active}/{total} 已激活 · {insights} 条记忆',
519
- 'status.flowDeterministicWrites': '普通 Runtime 与 Document 变更',
520
- 'status.flowDeterministicWritesMeta': 'add / replace / remove · create / update',
521
- 'status.flowControlPlane': 'Host 确定性控制层',
522
- 'status.flowControlPlaneMeta': '锁 · 原子写 · revision · 容量',
523
- 'status.flowReviewGate': '活动评分与空闲门控',
524
- 'status.flowReviewGateMeta': '{score}/{threshold} · idle {seconds}s',
525
- 'status.flowForkReview': 'fork 完成检查点',
526
- 'status.flowForkReviewMeta': '{state} · 只维护 Runtime / Document',
527
- 'status.flowReviewTargets': 'Runtime / active Document',
528
- 'status.flowReviewTargetsMeta': '保守维护 · 新轮次会取消审查',
529
- 'status.flowColdArchive': 'spawn 归档 worker',
530
- 'status.flowColdArchiveMeta': '容量维护 / 人工归档',
531
- 'status.flowIndexFirst': '1 · 先写 / 验证 Mnemon 冷索引',
532
- 'status.flowRevisionMove': '2 · revision fence 后迁移原文',
533
- 'status.flowRevisionMoveMeta': '{archived} 份已归档 · 失败或冲突保留 active',
534
- 'status.flowArchivedDocuments': '已归档 Documents',
535
- 'status.flowRecent': '最近活动',
536
- 'status.flowRunning': '正在运行',
537
- 'status.flowPending': '等待空闲',
538
- 'status.flowStatic': '执行边界',
539
- 'status.flowLegendReady': '可用 / 已就绪',
540
- 'status.flowLegendRecent': '当前或最近链路',
541
- 'status.flowLegendBoundary': '虚线表示 LLM 判断边界',
542
467
  'config.aria': 'Mnemon 记忆系统配置',
543
468
  'config.tab': 'Mnemon',
544
469
  'config.title': '记忆系统设置',
545
- 'config.description': '统一配置运行时记忆、项目档案、记忆体和对话界面;点击保存后立即生效。',
470
+ 'config.description': '统一配置运行时记忆、项目档案、记忆体和 DSH 界面;点击保存后立即生效。',
546
471
  'config.unsaved': '有未保存修改',
547
472
  'config.ready': '已保存并实时生效',
548
473
  'config.noticeBefore': '配置写入',
549
474
  'config.noticeAfter': ';所有设置点击保存后实时生效。切换范围不会自动迁移旧内容。',
475
+ 'config.displayTitle': '展示形态',
476
+ 'config.displayDescription': '选择记忆系统在 DSH Web 中的入口位置;切换后立即生效。',
477
+ 'config.displayAria': '记忆系统展示形态',
478
+ 'config.displaySidebar': 'Sidebar',
479
+ 'config.displaySidebarHint': '侧边栏中的独立工作台',
480
+ 'config.displayBuildin': 'Buildin',
481
+ 'config.displayBuildinHint': '对话区域的内置标签页',
550
482
  'config.storageTitle': '存储位置',
551
483
  'config.storageDescription': '决定 Mnemon 的运行时记忆、项目档案与记忆体保存在哪里;保存后原子切换。',
552
484
  'config.scope': '存储范围',
553
- 'config.scopeHint': '全局供所有工作区共享;工作区使用 DSH 启动目录;自定义使用指定目录。',
485
+ 'config.scopeHint': '全局供所有工作区共享;工作区按当前 DSH 会话隔离;自定义使用指定目录。',
554
486
  'config.scopeAria': 'Mnemon 存储范围',
555
487
  'config.global': '全局',
556
488
  'config.workspace': '工作区',
557
489
  'config.custom': '自定义',
558
- 'config.customHintShort': '选择一个目录',
559
- 'config.customSelected': '已选择目录',
490
+ 'config.customHintShort': '填写一个目录',
491
+ 'config.customSelected': '已填写目录',
560
492
  'config.customPack': '自定义 Pack',
561
493
  'config.customPackAria': '选择自定义 Mnemon Pack',
562
494
  'config.customPackRequired': '请选择或添加一个自定义 Pack。',
@@ -572,15 +504,11 @@ export const zh = {
572
504
  'config.customDirectory': '自定义目录',
573
505
  'config.customHint': '整个 Mnemon 数据域都位于此处。',
574
506
  'config.customAria': 'Mnemon 自定义数据目录',
575
- 'config.customBrowseHint': '使用 DSH 原生目录选择器,只保存这一个目录。',
576
- 'config.customNotSelected': '尚未选择',
577
- 'config.customBrowse': '浏览…',
578
- 'config.customBrowseAgain': '重新选择',
579
- 'config.customBrowsing': '选择中…',
580
- 'config.customBrowseUnavailable': '当前 DSH 主机未提供原生目录选择器。',
507
+ 'config.customDirectoryHint': '填写 DSH Host 上的目录路径,只保存这一个目录。',
508
+ 'config.customPlaceholder': '例如:/data/mnemon 或 ~/mnemon',
581
509
  'config.invalidScope': '存储范围无效。',
582
510
  'config.customRequired': '选择自定义存储时必须填写数据目录。',
583
- 'config.customAbsolute': '自定义目录必须是绝对路径或以 ~/ 开头。',
511
+ 'config.customAbsolute': '自定义目录必须是绝对路径或以 ~/ 开头;Windows 可填写盘符或 UNC 路径。',
584
512
  'config.saveFailed': '保存失败:{error}',
585
513
  'config.readOnly': '当前部署的插件设置为只读。',
586
514
  'config.discard': '放弃修改',
@@ -590,8 +518,6 @@ export const zh = {
590
518
  'config.interactionTitle': '对话界面',
591
519
  'config.interactionLive': '实时生效',
592
520
  'config.interactionHint': '保存后实时生效;关闭某项后恢复 DSH 原生呈现。',
593
- 'config.interactionToolviews': '记忆工具卡',
594
- 'config.interactionToolviewsHint': '展示 mnemon_* 工具的状态与摘要',
595
521
  'config.interactionTurnBar': '回合记忆条',
596
522
  'config.interactionTurnBarHint': '在回合尾部展示召回、沉淀与检索活动',
597
523
  'config.interactionSaveAction': '存入记忆按钮',
@@ -661,6 +587,8 @@ export const en = {
661
587
  'nav.group.system': 'System',
662
588
  'nav.group.storage': 'Memory tiers',
663
589
  'nav.group.tools': 'Read and write',
590
+ 'nav.memory.aria': 'Memory Space pages',
591
+ 'nav.overview': 'Overview',
664
592
  'nav.bodies': 'Memory Spaces',
665
593
  'nav.bodies.detail': 'Directory and live graph',
666
594
  'nav.runtime': 'Runtime',
@@ -672,6 +600,7 @@ export const en = {
672
600
  'nav.entities': 'Entities',
673
601
  'nav.entities.detail': 'Relations and context',
674
602
  'nav.remember': 'Distill',
603
+ 'nav.rememberAction': 'Remember',
675
604
  'nav.remember.detail': 'LLM-supervised writeback',
676
605
  'nav.content': 'Content',
677
606
  'nav.content.detail': 'Browse and maintain',
@@ -693,11 +622,25 @@ export const en = {
693
622
  'common.memories': '{count} memories',
694
623
  'common.edges': '{count} edges',
695
624
  'common.count': '{count}',
625
+ 'common.showing': 'Showing {visible} / {total}',
626
+ 'common.showMore': 'Show {count} more',
627
+ 'header.backToConversation': 'Back to chat',
696
628
  'header.checking': 'Checking',
697
- 'header.connected': 'Connected · {count} active',
629
+ 'header.connected': 'Connected',
630
+ 'header.connectedWithCount': 'Connected · {count} active',
698
631
  'header.directoryPending': 'Connected · directory pending',
699
632
  'header.unavailable': 'Unavailable',
700
633
  'header.notReady': 'Mnemon is not ready',
634
+ 'workspace.viewing': 'Viewing workspace',
635
+ 'workspace.selectorAria': 'Select a memory workspace to inspect',
636
+ 'workspace.storageMode': 'Storage',
637
+ 'workspace.storageModeAria': 'Storage location mode: {mode}',
638
+ 'workspace.mismatchTitle': 'The inspected directory is not aligned with this session',
639
+ 'workspace.mismatchShort': 'Not conversation workspace',
640
+ 'workspace.mismatchDescription': 'Workbench actions target the inspected directory; agents, tools, and lifecycle hooks continue to use the current session directory.',
641
+ 'workspace.selectedRoot': 'Viewing: {root}',
642
+ 'workspace.effectiveRoot': 'Effective: {root}',
643
+ 'workspace.align': 'Align to conversation',
701
644
  'telemetry.aria': 'Memory statistics',
702
645
  'telemetry.title': 'Memory statistics',
703
646
  'telemetry.memories': 'Active memories',
@@ -707,6 +650,7 @@ export const en = {
707
650
  'sidebar.activeSpaces': 'Active Memory Spaces',
708
651
  'overview.title': 'Memory Spaces',
709
652
  'overview.description': 'Control the global read boundary and inspect all active Memory Spaces in one live four-graph snapshot.',
653
+ 'overview.pageDescription': 'Inspect directory settings, storage health, and the live relation graph for every active Memory Space.',
710
654
  'overview.interval': 'Every 15 seconds',
711
655
  'overview.syncing': 'Syncing…',
712
656
  'overview.syncNow': 'Sync now',
@@ -731,6 +675,7 @@ export const en = {
731
675
  'overview.noContentTitle': 'Active spaces have no content yet',
732
676
  'overview.noContentText': 'Distill durable context into a space to populate nodes and relations.',
733
677
  'overview.create': '+ Create empty Memory Space',
678
+ 'overview.createTitle': 'Create Memory Space',
734
679
  'overview.createName': 'New Memory Space name',
735
680
  'overview.createNamePlaceholder': 'Name',
736
681
  'overview.createDescription': 'New Memory Space description',
@@ -743,6 +688,12 @@ export const en = {
743
688
  'overview.editDescription': 'Routing description',
744
689
  'overview.saveBody': 'Save',
745
690
  'overview.savingBody': 'Saving…',
691
+ 'overview.deleteBody': 'Delete',
692
+ 'overview.deleteBodyAria': 'Delete {name}',
693
+ 'overview.deleteTitle': 'Delete “{name}”?',
694
+ 'overview.deleteWarning': 'This permanently deletes the Memory Space and every memory and relation it contains. This cannot be undone.',
695
+ 'overview.deleteAction': 'Delete permanently',
696
+ 'overview.deletingBody': 'Deleting…',
746
697
  'overview.snapshot': 'Live multi-space snapshot',
747
698
  'overview.waitingSnapshot': 'Waiting for the first snapshot',
748
699
  'overview.updatedAt': 'Updated at {time}',
@@ -771,6 +722,12 @@ export const en = {
771
722
  'runtime.title': 'Runtime Memory',
772
723
  'runtime.description': 'Manage compact hot memory loaded into every turn. A single control plane owns structured data and projects USER.md and MEMORY.md.',
773
724
  'runtime.total': '{count} hot memories',
725
+ 'runtime.entriesAria': 'Runtime memory list',
726
+ 'runtime.scopeAria': 'Runtime memory scope',
727
+ 'runtime.scopeAll': 'All',
728
+ 'runtime.filterAria': 'Filter runtime memory',
729
+ 'runtime.filterPlaceholder': 'Filter by content…',
730
+ 'runtime.noMatch': 'No hot memory matches the current scope and query.',
774
731
  'runtime.refresh': 'Refresh',
775
732
  'runtime.hotContext': 'Every-turn context',
776
733
  'runtime.addTitle': 'Add hot memory',
@@ -780,6 +737,7 @@ export const en = {
780
737
  'runtime.target': 'Target',
781
738
  'runtime.importance': 'Importance',
782
739
  'runtime.saving': 'Working…',
740
+ 'runtime.addButton': 'Add memory',
783
741
  'runtime.addAction': 'Add',
784
742
  'runtime.target.user': 'User Profile',
785
743
  'runtime.target.user.description': 'Identity, role, habits, communication preferences, and explicit collaboration requirements. Capacity maintenance stays local and never enters a Memory Space.',
@@ -794,6 +752,8 @@ export const en = {
794
752
  'runtime.saveEdit': 'Save change',
795
753
  'runtime.removeAction': 'Remove',
796
754
  'runtime.removeConfirm': 'Remove this hot-memory entry?',
755
+ 'runtime.removeTitle': 'Remove runtime memory?',
756
+ 'runtime.removeWarning': 'After removal, this content will no longer load with every turn. This action cannot be undone.',
797
757
  'runtime.result.add': 'Added to {target} · {count} entries',
798
758
  'runtime.result.replace': 'Updated {target} · {count} entries',
799
759
  'runtime.result.remove': 'Removed from {target} · {count} entries',
@@ -878,27 +838,6 @@ export const en = {
878
838
  'card.related': 'View related',
879
839
  'card.clone': 'Create from this',
880
840
  'card.forget': 'Forget',
881
- 'toolview.recallTitle': 'Memory recall',
882
- 'toolview.writeTitle': 'Memory write',
883
- 'toolview.genericSummary': 'Mnemon tool call',
884
- 'toolview.running': 'Working…',
885
- 'toolview.recallSummary': '{query} · {count} hits',
886
- 'toolview.relatedSummary': '{id} · {count} related',
887
- 'toolview.documentSearchSummary': '{query} · {count} documents',
888
- 'toolview.statusHealthy': 'Mnemon engine healthy',
889
- 'toolview.statusUnhealthy': 'Mnemon engine unhealthy',
890
- 'toolview.bodiesSummary': '{count} spaces · {active} active',
891
- 'toolview.runtimeSummary': '{action} {target} hot memory',
892
- 'toolview.runtimeSummaryWithContent': '{action} {target} hot memory · {content}',
893
- 'toolview.documentManageSummary': '{action} project document',
894
- 'toolview.documentManageSummaryWithTitle': '{action} project document · {title}',
895
- 'toolview.bodyUpdateSummary': 'Update Memory Space {id}',
896
- 'toolview.bodyMergeSummary': 'Merge into {target} · {count} sources',
897
- 'toolview.openView': 'Open in Memory view',
898
- 'toolview.inspect': 'Inspect',
899
- 'toolview.args': 'Arguments',
900
- 'toolview.result': 'Result',
901
- 'toolview.noResult': 'No result yet',
902
841
  'turnTail.label': 'Turn memory',
903
842
  'turnTail.recall': 'recalled {count}',
904
843
  'turnTail.write': 'wrote {count}',
@@ -906,20 +845,21 @@ export const en = {
906
845
  'turnTail.inspect': 'inspected {count}',
907
846
  'turnTail.failed': 'failed {count}',
908
847
  'turnTail.toolList': 'Memory tools this turn',
909
- 'turnTail.openView': 'Open Memory view',
848
+ 'turnTail.openTool': 'Open the Memory page for {tool}',
910
849
  'saveAction.button': 'Save to memory',
911
- 'saveAction.title': 'Send this reply to the memory subagent',
850
+ 'saveAction.tooltip': 'Save this reply to memory',
851
+ 'saveAction.title': 'Confirm save to memory',
912
852
  'saveAction.hint': 'The subagent decides whether it qualifies, then dedupes, distills, chooses a Memory Space, and writes without filling the main conversation context.',
913
853
  'saveAction.fetching': 'Extracting message text…',
914
854
  'saveAction.missing': 'Could not extract this message text from the session log.',
915
855
  'saveAction.candidate': 'Candidate (editable)',
916
856
  'saveAction.truncated': 'This reply is long; only the first {limit} characters are loaded here.',
917
- 'saveAction.submit': 'Send to memory subagent',
857
+ 'saveAction.submit': 'Confirm and send to memory subagent',
918
858
  'saveAction.submitting': 'Dispatching…',
919
859
  'saveAction.result': 'Memory subagent: {summary}',
920
860
  'saveAction.failed': 'Dispatch failed: {error}',
921
861
  'saveAction.readOnly': 'This deployment is read only; memory writes are disabled.',
922
- 'saveAction.close': 'Collapse',
862
+ 'saveAction.close': 'Close',
923
863
  'search.title': 'Recall Memory',
924
864
  'search.description': 'Query raw Mnemon evidence directly, then optionally ask an Agent to answer from those matches only.',
925
865
  'search.maxResults': 'Up to {count} results',
@@ -1009,7 +949,7 @@ export const en = {
1009
949
  'content.emptyTitle': 'No matching memories',
1010
950
  'content.emptyText': 'Clear the filters or distill the first durable memory.',
1011
951
  'status.title': 'System Status',
1012
- 'status.description': 'Mnemon engine, Memory Space directory, and subagent orchestration. DSH deployment owns connection configuration.',
952
+ 'status.description': 'Mnemon engine, three-tier storage, and the current read/write root. DSH deployment owns connection configuration.',
1013
953
  'status.nominal': 'System nominal',
1014
954
  'status.checkRequired': 'Check required',
1015
955
  'status.rechecking': 'Checking…',
@@ -1020,6 +960,40 @@ export const en = {
1020
960
  'status.engineUnavailable': 'Mnemon unavailable',
1021
961
  'status.engineChecking': 'Checking the local engine',
1022
962
  'status.versionWaiting': 'Waiting for version',
963
+ 'versions.checkAction': 'Check versions',
964
+ 'versions.title': 'Check and update versions',
965
+ 'versions.description': 'Check Mnemon CLI and dsh-mnemon. Updates are offered only for a recognized, supported installation.',
966
+ 'versions.checking': 'Checking remote repositories for new versions…',
967
+ 'versions.checkingShort': 'Checking…',
968
+ 'versions.recheck': 'Check again',
969
+ 'versions.failed': 'Version operation failed',
970
+ 'versions.timeout': 'The version check timed out. Check the network and try again.',
971
+ 'versions.current': 'Up to date',
972
+ 'versions.available': 'Update available',
973
+ 'versions.unknown': 'Cannot verify',
974
+ 'versions.installed': 'Installed',
975
+ 'versions.latest': 'Latest',
976
+ 'versions.update': 'Update',
977
+ 'versions.updating': 'Updating…',
978
+ 'versions.updated': '{name} updated',
979
+ 'versions.alreadyCurrent': 'Already on the latest version',
980
+ 'versions.restartRequired': 'Restart dsh web to load the new dsh-mnemon plugin code.',
981
+ 'versions.checkedAt': 'Checked at {time}',
982
+ 'versions.latestUnavailable': 'The remote latest version is unavailable. Check the network and try again.',
983
+ 'versions.modeHomebrew': 'Homebrew',
984
+ 'versions.modeGo': 'Go install',
985
+ 'versions.modeNpm': 'DSH Profile',
986
+ 'versions.modeLink': 'Local link',
987
+ 'versions.modeManual': 'Manual',
988
+ 'versions.modeMissing': 'Missing',
989
+ 'versions.hintHomebrew': 'Managed by Homebrew; an available release can be safely updated here.',
990
+ 'versions.hintBrewMissing': 'A Homebrew installation was detected, but the brew command is unavailable.',
991
+ 'versions.hintGo': 'Managed by go install; an available release can be safely updated here.',
992
+ 'versions.hintPnpm': 'Managed by the current DSH Profile; restart dsh web after updating.',
993
+ 'versions.hintPnpmMissing': 'A DSH Profile installation was detected, but the pnpm command is unavailable.',
994
+ 'versions.hintLink': 'This is a local linked development build. Pull and build in the source directory to preserve local changes.',
995
+ 'versions.hintInstall': 'Mnemon CLI was not found. Install it and place mnemon on PATH, or configure cliPath.',
996
+ 'versions.hintManual': 'The installation source cannot be identified safely. Update it using the original installation method.',
1023
997
  'status.spaces': 'Memory Spaces',
1024
998
  'status.activeRatio': '{active} / {total} active',
1025
999
  'status.runtime': 'Runtime',
@@ -1034,71 +1008,8 @@ export const en = {
1034
1008
  'status.documentsSession': 'Available after binding a live session',
1035
1009
  'status.documentRatio': '{active} active · {archived} archived',
1036
1010
  'status.documentUsage': '{used} / {limit} active capacity',
1037
- 'status.router': 'Subagent router',
1038
- 'status.routerReady': 'Memory subagent available',
1039
- 'status.sessionMissing': 'No live session bound',
1040
- 'status.routerChecking': 'Synchronizing session capabilities',
1041
- 'status.orchestrationWaiting': 'Waiting for orchestration status',
1042
- 'status.workerCounts': '{recalls} recalls · {answers} answers · {reviews} reviews · {documentArchives} document moves · {migrations} hot-memory archives · {writes} regular writes',
1043
- 'status.workerSummary': '{recalls} recalls · {reviews} reviews · {writes} writes · {failures} failed',
1044
- 'status.lifecycle': 'Subagent Lifecycle',
1045
- 'status.lifecycleText': 'Pre-step adds only a short cue. Background activity is scored from user text, turns, completed tool calls, and tool diversity; after the gate and idle delay, one fork child reviews hot memory and substantial project documentation together.',
1046
- 'status.phaseIdle': 'Idle',
1047
- 'status.phaseSupervised': 'Supervised request',
1048
- 'status.phaseError': 'Error',
1049
- 'status.phaseReview': 'Background review',
1050
- 'status.prime': 'Prime',
1051
- 'status.primeText': 'Initialize routing state without reading the directory or memory',
1052
- 'status.recallWorker': 'Recall worker',
1053
- 'status.recallText': 'Pre-step only prompts a decision; the main model recalls on demand',
1054
- 'status.recallOff': 'Automatic recall is disabled',
1055
- 'status.writeWorker': 'Scored review',
1056
- 'status.writeText': 'After activity reaches {threshold}, wait {seconds}s idle, fork the full checkpoint, and maintain hot memory or Documents only when justified',
1057
- 'status.writeOff': 'Background review is disabled',
1058
- 'status.latestPhase': 'Latest phase',
1059
- 'status.latestActivity': 'Latest activity',
1060
- 'status.reviewState': 'Review state',
1061
- 'status.reviewPending': 'Score reached; waiting for idle',
1062
- 'status.reviewRunning': 'Reviewing',
1063
- 'status.reviewQualified': 'Score reached; waiting for turn completion',
1064
- 'status.reviewAccumulating': 'Accumulating signals',
1065
- 'status.reviewIdle': 'Accumulating signals',
1066
- 'status.activityScore': 'Activity score',
1067
- 'status.activitySignals': 'Accumulated signals',
1068
- 'status.activitySignalValues': '{chars} chars · {turns} turns · {tools} tool calls · {unique} tools',
1069
- 'status.lastReview': 'Last review',
1070
- 'status.noReview': 'Not run yet',
1071
- 'status.reviewAt': '{time} · {action} · trigger score {score}',
1072
- 'status.supervisedRequests': 'Supervised requests',
1073
- 'status.workerFailures': 'Subagent failures',
1074
- 'status.reviewDocuments': 'Documents in last review',
1075
- 'status.noActivity': 'No activity yet',
1076
- 'status.quickDiagnostics': 'Quick Diagnostics',
1077
- 'status.cliExecutable': 'Mnemon CLI executable',
1078
- 'status.cliMissing': 'Mnemon CLI not found',
1079
- 'status.readingSpaces': '{count} Memory Spaces participate in reads',
1080
- 'status.directoryWaiting': 'Memory Space directory is waiting for Host synchronization',
1081
- 'status.webAgentReady': 'WebUI can start isolated memory subagents',
1082
- 'status.liveSessionMissing': 'Live session missing',
1083
- 'status.lifecycleFailures': '{count} lifecycle failures',
1084
- 'status.documentsUnavailable': 'Document directory unavailable for this session',
1085
- 'status.documentsHealthy': '{count} active document(s) available for near-field search',
1086
- 'status.nativeAccess': 'Native commands',
1087
- 'status.nativeAccessText': 'Models use native mnemon_* tools. Human commands still use supervised routing.',
1088
- 'status.engineStorage': 'Engine and Storage',
1089
- 'status.online': 'Online',
1090
- 'status.offline': 'Offline',
1091
- 'status.mnemonVersion': 'Mnemon version',
1092
- 'status.directory': 'Memory Space directory',
1093
- 'status.activeDbSize': 'Active database size',
1094
- 'status.activeCount': 'Active',
1095
- 'status.activeGraphEdges': 'Active graph edges',
1096
- 'status.documentDirectory': 'Project Documents directory',
1097
- 'status.activeDocuments': 'Active Documents',
1098
- 'status.coldDocuments': 'Archives',
1099
- 'status.documentCapacity': 'Active document capacity',
1100
1011
  'status.storageDomains': 'Storage Domains',
1101
- 'status.storageDomainsText': 'The current selection is the shared directory boundary for runtime memory, Memory Spaces, project Documents, and background state.',
1012
+ 'status.storageDomainsText': 'The current selection is the shared directory boundary for runtime memory, Memory Spaces, and project Documents.',
1102
1013
  'status.storageBrowseOnly': 'Browsing does not switch writes',
1103
1014
  'status.storageScopeAria': 'Select a storage domain to inspect',
1104
1015
  'status.storageGlobal': 'Global',
@@ -1127,84 +1038,31 @@ export const en = {
1127
1038
  'status.storageStateReady': 'Review watermarks are persisted',
1128
1039
  'status.storageStateVolatile': 'Review state is currently owned by the Host process',
1129
1040
  'status.storageFootnote': 'Current read/write root: {root}. Change the scope only in DSH Settings → Memory System; it applies live after Save and never auto-migrates, merges, or deletes old content.',
1130
- 'status.flowTitle': 'Memory System Flow',
1131
- 'status.flowDescription': 'Maps the real execution boundaries across per-turn injection, deterministic file control, semantic workers, the CLI data plane, archive, and fork review.',
1132
- 'status.flowLive': 'Live state',
1133
- 'status.flowDegraded': 'Partially unavailable',
1134
- 'status.flowConversation': 'User / Current Task',
1135
- 'status.flowTurns': 'Current-turn input and tool trace',
1136
- 'status.flowSupervisor': 'Root Agent',
1137
- 'status.flowEntries': '{count} hot-memory entries',
1138
- 'status.flowDocuments': '{active} active · {archived} archived',
1139
- 'status.flowContext': 'Evidence / Receipts',
1140
- 'status.flowContextDetail': 'Structured results return to the task',
1141
- 'status.flowReadWrite': 'Deterministic Host path',
1142
- 'status.flowArchive': 'LLM-supervised path',
1143
- 'status.flowCurrentScope': 'Current scope: {scope}',
1144
- 'status.flowLaneContext': 'Per-turn Context',
1145
- 'status.flowLaneContextDetail': 'Runtime is injected every turn; Documents are searched on demand',
1146
- 'status.flowLaneSemantic': 'On-demand Semantic Operations',
1147
- 'status.flowLaneSemanticDetail': 'An isolated worker decides; Host services execute',
1148
- 'status.flowLaneMaintenance': 'Idle Maintenance and Archive',
1149
- 'status.flowLaneMaintenanceDetail': 'Fork review plus index-before-move archival',
1150
- 'status.flowRuntimeMeta': 'USER.md + MEMORY.md · {count} entries',
1151
- 'status.flowPromptAssembly': 'every-turn prompt assembly',
1152
- 'status.flowDocumentSearch': 'Deterministic Document Search',
1153
- 'status.flowOnDemand': 'on demand; no full-content injection',
1154
- 'status.flowRootMeta': 'routes tools; never opens SQLite directly',
1155
- 'status.flowStructuredReturn': 'structured evidence / receipt',
1156
- 'status.flowEvidenceMeta': 'returns to the Root Agent with sources',
1157
- 'status.flowSemanticRequest': 'recall · write · related',
1158
- 'status.flowSpawnWorker': 'spawn Isolated Worker',
1159
- 'status.flowSpawnMeta': 'semantic judgment · minimal tool allowlist',
1160
- 'status.flowService': 'MnemonService',
1161
- 'status.flowServiceMeta': 'validate · normalize · aggregate',
1162
- 'status.flowRunnerCli': 'Runner → Local CLI',
1163
- 'status.flowRunnerCliMeta': 'timeout / cancel / JSON process boundary',
1164
- 'status.flowHostBridge': 'Mnemon Host Bridge',
1165
- 'status.flowHostBridgeMeta': 'Service → Runner → local CLI',
1166
- 'status.flowSpacesMeta': '{active}/{total} active · {insights} memories',
1167
- 'status.flowDeterministicWrites': 'Ordinary Runtime and Document Changes',
1168
- 'status.flowDeterministicWritesMeta': 'add / replace / remove · create / update',
1169
- 'status.flowControlPlane': 'Deterministic Host Control',
1170
- 'status.flowControlPlaneMeta': 'locks · atomic writes · revision · capacity',
1171
- 'status.flowReviewGate': 'Activity Score and Idle Gate',
1172
- 'status.flowReviewGateMeta': '{score}/{threshold} · idle {seconds}s',
1173
- 'status.flowForkReview': 'fork Completed Checkpoint',
1174
- 'status.flowForkReviewMeta': '{state} · Runtime / Document maintenance only',
1175
- 'status.flowReviewTargets': 'Runtime / active Document',
1176
- 'status.flowReviewTargetsMeta': 'conservative upkeep · a new turn cancels review',
1177
- 'status.flowColdArchive': 'spawn Archive Worker',
1178
- 'status.flowColdArchiveMeta': 'capacity maintenance / manual archive',
1179
- 'status.flowIndexFirst': '1 · write / verify the Mnemon cold index',
1180
- 'status.flowRevisionMove': '2 · move the original after revision fence',
1181
- 'status.flowRevisionMoveMeta': '{archived} archived · failure or conflict keeps active content',
1182
- 'status.flowArchivedDocuments': 'Archived Documents',
1183
- 'status.flowRecent': 'Recent activity',
1184
- 'status.flowRunning': 'Running',
1185
- 'status.flowPending': 'Waiting for idle',
1186
- 'status.flowStatic': 'Execution boundary',
1187
- 'status.flowLegendReady': 'Available / ready',
1188
- 'status.flowLegendRecent': 'Current or recent path',
1189
- 'status.flowLegendBoundary': 'Dashed lines mark LLM judgment boundaries',
1190
1041
  'config.aria': 'Mnemon memory system configuration',
1191
1042
  'config.tab': 'Mnemon',
1192
1043
  'config.title': 'Memory system settings',
1193
- 'config.description': 'Configure runtime memory, project Documents, Memory Spaces, and conversation UI together. Changes apply immediately after Save.',
1044
+ 'config.description': 'Configure runtime memory, project Documents, Memory Spaces, and the DSH interface together. Changes apply immediately after Save.',
1194
1045
  'config.unsaved': 'Unsaved changes',
1195
1046
  'config.ready': 'Saved and applied live',
1196
1047
  'config.noticeBefore': 'Configuration is written to',
1197
1048
  'config.noticeAfter': '. All settings apply live after Save. Switching scopes never migrates existing content automatically.',
1049
+ 'config.displayTitle': 'Display mode',
1050
+ 'config.displayDescription': 'Choose where the memory system appears in DSH Web. Switching modes applies immediately.',
1051
+ 'config.displayAria': 'Memory system display mode',
1052
+ 'config.displaySidebar': 'Sidebar',
1053
+ 'config.displaySidebarHint': 'Dedicated workspace in the sidebar',
1054
+ 'config.displayBuildin': 'Buildin',
1055
+ 'config.displayBuildinHint': 'Built-in tab in the conversation area',
1198
1056
  'config.storageTitle': 'Storage location',
1199
1057
  'config.storageDescription': 'Choose where Mnemon keeps runtime memory, project Documents, and Memory Spaces. Save atomically switches the active root.',
1200
1058
  'config.scope': 'Storage scope',
1201
- 'config.scopeHint': 'Global is shared across workspaces; Workspace uses the DSH launch directory; Custom uses the directory below.',
1059
+ 'config.scopeHint': 'Global is shared across workspaces; Workspace is isolated by the current DSH session; Custom uses the directory below.',
1202
1060
  'config.scopeAria': 'Mnemon storage scope',
1203
1061
  'config.global': 'Global',
1204
1062
  'config.workspace': 'Workspace',
1205
1063
  'config.custom': 'Custom',
1206
- 'config.customHintShort': 'Choose one directory',
1207
- 'config.customSelected': 'Directory selected',
1064
+ 'config.customHintShort': 'Enter one directory',
1065
+ 'config.customSelected': 'Directory entered',
1208
1066
  'config.customPack': 'Custom Pack',
1209
1067
  'config.customPackAria': 'Select a custom Mnemon Pack',
1210
1068
  'config.customPackRequired': 'Select or add a custom Pack.',
@@ -1220,15 +1078,11 @@ export const en = {
1220
1078
  'config.customDirectory': 'Custom directory',
1221
1079
  'config.customHint': 'The complete Mnemon data domain lives here.',
1222
1080
  'config.customAria': 'Mnemon custom data directory',
1223
- 'config.customBrowseHint': 'Use DSH\'s native directory picker; only this one directory is stored.',
1224
- 'config.customNotSelected': 'Not selected',
1225
- 'config.customBrowse': 'Browse…',
1226
- 'config.customBrowseAgain': 'Choose again',
1227
- 'config.customBrowsing': 'Choosing…',
1228
- 'config.customBrowseUnavailable': 'This DSH host does not provide the native directory picker.',
1081
+ 'config.customDirectoryHint': 'Enter a directory path on the DSH Host; only this one directory is stored.',
1082
+ 'config.customPlaceholder': 'For example: /data/mnemon or ~/mnemon',
1229
1083
  'config.invalidScope': 'The storage scope is invalid.',
1230
1084
  'config.customRequired': 'A data directory is required for custom storage.',
1231
- 'config.customAbsolute': 'The custom directory must be absolute or start with ~/.',
1085
+ 'config.customAbsolute': 'The custom directory must be absolute or start with ~/. Windows drive and UNC paths are supported.',
1232
1086
  'config.saveFailed': 'Save failed: {error}',
1233
1087
  'config.readOnly': 'Plugin settings are read-only in this deployment.',
1234
1088
  'config.discard': 'Discard changes',
@@ -1238,8 +1092,6 @@ export const en = {
1238
1092
  'config.interactionTitle': 'Conversation interface',
1239
1093
  'config.interactionLive': 'Live',
1240
1094
  'config.interactionHint': 'Changes apply live after saving. Disabling an item restores DSH\'s native presentation.',
1241
- 'config.interactionToolviews': 'Memory tool cards',
1242
- 'config.interactionToolviewsHint': 'Show status and summaries for mnemon_* tools',
1243
1095
  'config.interactionTurnBar': 'Turn memory bar',
1244
1096
  'config.interactionTurnBarHint': 'Show recall, write, and search activity below each turn',
1245
1097
  'config.interactionSaveAction': 'Save to memory action',