dsh-mnemon 0.1.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 (145) hide show
  1. package/LICENSE +21 -0
  2. package/README.en.md +169 -0
  3. package/README.md +169 -0
  4. package/cordis.patch.yml +15 -0
  5. package/docs/README.md +8 -0
  6. package/docs/en/README.md +39 -0
  7. package/docs/en/architecture.md +129 -0
  8. package/docs/en/assets/project-architecture.svg +182 -0
  9. package/docs/en/configuration.md +204 -0
  10. package/docs/en/development.md +178 -0
  11. package/docs/en/getting-started.md +147 -0
  12. package/docs/en/interfaces.md +159 -0
  13. package/docs/en/operations.md +151 -0
  14. package/docs/en/project-overview.md +247 -0
  15. package/docs/en/roadmap.md +41 -0
  16. package/docs/en/storage-model.md +179 -0
  17. package/docs/en/workflows.md +290 -0
  18. package/docs/zh-CN/README.md +39 -0
  19. package/docs/zh-CN/architecture.md +129 -0
  20. package/docs/zh-CN/assets/project-architecture.svg +182 -0
  21. package/docs/zh-CN/assets/screenshots/conversation-recall.png +0 -0
  22. package/docs/zh-CN/assets/screenshots/conversation-writeback.png +0 -0
  23. package/docs/zh-CN/assets/screenshots/documents-markdown.png +0 -0
  24. package/docs/zh-CN/assets/screenshots/entities-context.png +0 -0
  25. package/docs/zh-CN/assets/screenshots/memory-content.png +0 -0
  26. package/docs/zh-CN/assets/screenshots/overview-memory-graph.png +0 -0
  27. package/docs/zh-CN/assets/screenshots/recall-agent-answer.png +0 -0
  28. package/docs/zh-CN/assets/screenshots/runtime-memory.png +0 -0
  29. package/docs/zh-CN/configuration.md +204 -0
  30. package/docs/zh-CN/development.md +178 -0
  31. package/docs/zh-CN/getting-started.md +147 -0
  32. package/docs/zh-CN/interfaces.md +159 -0
  33. package/docs/zh-CN/operations.md +151 -0
  34. package/docs/zh-CN/project-overview.md +247 -0
  35. package/docs/zh-CN/roadmap.md +41 -0
  36. package/docs/zh-CN/storage-model.md +179 -0
  37. package/docs/zh-CN/workflows.md +290 -0
  38. package/lib/client.js +6288 -0
  39. package/lib/client.js.map +1 -0
  40. package/lib/index.js +4453 -0
  41. package/lib/types/client/MnemonLogo.d.ts +7 -0
  42. package/lib/types/client/MnemonLogo.d.ts.map +1 -0
  43. package/lib/types/client/MnemonLogo.js +6 -0
  44. package/lib/types/client/MnemonLogo.js.map +1 -0
  45. package/lib/types/client/MnemonSettingsCard.d.ts +9 -0
  46. package/lib/types/client/MnemonSettingsCard.d.ts.map +1 -0
  47. package/lib/types/client/MnemonSettingsCard.js +109 -0
  48. package/lib/types/client/MnemonSettingsCard.js.map +1 -0
  49. package/lib/types/client/MnemonView.d.ts +11 -0
  50. package/lib/types/client/MnemonView.d.ts.map +1 -0
  51. package/lib/types/client/MnemonView.js +1239 -0
  52. package/lib/types/client/MnemonView.js.map +1 -0
  53. package/lib/types/client/api.d.ts +68 -0
  54. package/lib/types/client/api.d.ts.map +1 -0
  55. package/lib/types/client/api.js +80 -0
  56. package/lib/types/client/api.js.map +1 -0
  57. package/lib/types/client/index.d.ts +4 -0
  58. package/lib/types/client/index.d.ts.map +1 -0
  59. package/lib/types/client/index.js +36 -0
  60. package/lib/types/client/index.js.map +1 -0
  61. package/lib/types/client/locales.d.ts +1054 -0
  62. package/lib/types/client/locales.d.ts.map +1 -0
  63. package/lib/types/client/locales.js +1062 -0
  64. package/lib/types/client/locales.js.map +1 -0
  65. package/lib/types/client/settings.d.ts +17 -0
  66. package/lib/types/client/settings.d.ts.map +1 -0
  67. package/lib/types/client/settings.js +49 -0
  68. package/lib/types/client/settings.js.map +1 -0
  69. package/lib/types/commands.d.ts +6 -0
  70. package/lib/types/commands.d.ts.map +1 -0
  71. package/lib/types/commands.js +100 -0
  72. package/lib/types/commands.js.map +1 -0
  73. package/lib/types/config-values.d.ts +4 -0
  74. package/lib/types/config-values.d.ts.map +1 -0
  75. package/lib/types/config-values.js +4 -0
  76. package/lib/types/config-values.js.map +1 -0
  77. package/lib/types/config.d.ts +49 -0
  78. package/lib/types/config.d.ts.map +1 -0
  79. package/lib/types/config.js +55 -0
  80. package/lib/types/config.js.map +1 -0
  81. package/lib/types/contracts.d.ts +272 -0
  82. package/lib/types/contracts.d.ts.map +1 -0
  83. package/lib/types/contracts.js +2 -0
  84. package/lib/types/contracts.js.map +1 -0
  85. package/lib/types/documents.d.ts +149 -0
  86. package/lib/types/documents.d.ts.map +1 -0
  87. package/lib/types/documents.js +503 -0
  88. package/lib/types/documents.js.map +1 -0
  89. package/lib/types/guidance.d.ts +9 -0
  90. package/lib/types/guidance.d.ts.map +1 -0
  91. package/lib/types/guidance.js +18 -0
  92. package/lib/types/guidance.js.map +1 -0
  93. package/lib/types/index.d.ts +15 -0
  94. package/lib/types/index.d.ts.map +1 -0
  95. package/lib/types/index.js +45 -0
  96. package/lib/types/index.js.map +1 -0
  97. package/lib/types/lifecycle.d.ts +75 -0
  98. package/lib/types/lifecycle.d.ts.map +1 -0
  99. package/lib/types/lifecycle.js +380 -0
  100. package/lib/types/lifecycle.js.map +1 -0
  101. package/lib/types/memory-bodies.d.ts +47 -0
  102. package/lib/types/memory-bodies.d.ts.map +1 -0
  103. package/lib/types/memory-bodies.js +160 -0
  104. package/lib/types/memory-bodies.js.map +1 -0
  105. package/lib/types/process.d.ts +14 -0
  106. package/lib/types/process.d.ts.map +1 -0
  107. package/lib/types/process.js +65 -0
  108. package/lib/types/process.js.map +1 -0
  109. package/lib/types/review-activity.d.ts +33 -0
  110. package/lib/types/review-activity.d.ts.map +1 -0
  111. package/lib/types/review-activity.js +37 -0
  112. package/lib/types/review-activity.js.map +1 -0
  113. package/lib/types/rpc.d.ts +12 -0
  114. package/lib/types/rpc.d.ts.map +1 -0
  115. package/lib/types/rpc.js +225 -0
  116. package/lib/types/rpc.js.map +1 -0
  117. package/lib/types/runner.d.ts +29 -0
  118. package/lib/types/runner.d.ts.map +1 -0
  119. package/lib/types/runner.js +150 -0
  120. package/lib/types/runner.js.map +1 -0
  121. package/lib/types/runtime-memory.d.ts +104 -0
  122. package/lib/types/runtime-memory.d.ts.map +1 -0
  123. package/lib/types/runtime-memory.js +415 -0
  124. package/lib/types/runtime-memory.js.map +1 -0
  125. package/lib/types/service.d.ts +173 -0
  126. package/lib/types/service.d.ts.map +1 -0
  127. package/lib/types/service.js +508 -0
  128. package/lib/types/service.js.map +1 -0
  129. package/lib/types/settings.d.ts +6 -0
  130. package/lib/types/settings.d.ts.map +1 -0
  131. package/lib/types/settings.js +75 -0
  132. package/lib/types/settings.js.map +1 -0
  133. package/lib/types/storage-scope.d.ts +39 -0
  134. package/lib/types/storage-scope.d.ts.map +1 -0
  135. package/lib/types/storage-scope.js +179 -0
  136. package/lib/types/storage-scope.js.map +1 -0
  137. package/lib/types/subagent.d.ts +97 -0
  138. package/lib/types/subagent.d.ts.map +1 -0
  139. package/lib/types/subagent.js +619 -0
  140. package/lib/types/subagent.js.map +1 -0
  141. package/lib/types/tools.d.ts +8 -0
  142. package/lib/types/tools.d.ts.map +1 -0
  143. package/lib/types/tools.js +328 -0
  144. package/lib/types/tools.js.map +1 -0
  145. package/package.json +111 -0
@@ -0,0 +1,1062 @@
1
+ /** Mnemon workspace copy, synchronized with DSH's global locale service. */
2
+ export const zh = {
3
+ 'tab.label': '记忆系统',
4
+ 'term.space': '记忆体',
5
+ 'term.spaces': '记忆体',
6
+ 'category.decision': '决策',
7
+ 'category.preference': '偏好',
8
+ 'category.fact': '事实',
9
+ 'category.insight': '洞察',
10
+ 'category.context': '上下文',
11
+ 'category.general': '通用',
12
+ 'nav.aria': 'Mnemon 页面',
13
+ 'nav.group.system': '系统',
14
+ 'nav.group.storage': '三层记忆',
15
+ 'nav.group.tools': '读写工具',
16
+ 'nav.bodies': '记忆体',
17
+ 'nav.bodies.detail': '记忆体目录与实时图谱',
18
+ 'nav.runtime': '运行时',
19
+ 'nav.runtime.detail': '热记忆与上下文',
20
+ 'nav.documents': '档案',
21
+ 'nav.documents.detail': '项目知识与归档',
22
+ 'nav.search': '检索',
23
+ 'nav.search.detail': '意图增强召回',
24
+ 'nav.entities': '实体',
25
+ 'nav.entities.detail': '关系与上下文',
26
+ 'nav.remember': '沉淀',
27
+ 'nav.remember.detail': 'LLM 监督写回',
28
+ 'nav.content': '内容',
29
+ 'nav.content.detail': '浏览与维护',
30
+ 'nav.status': '状态',
31
+ 'nav.status.detail': '运行与诊断',
32
+ 'common.refresh': '刷新状态',
33
+ 'common.loading': '载入中…',
34
+ 'common.cancel': '取消',
35
+ 'common.copyId': '复制 ID',
36
+ 'common.readOnly': '只读模式',
37
+ 'common.agentSupervised': '子 Agent 监督',
38
+ 'common.active': '已激活',
39
+ 'common.inactive': '未激活',
40
+ 'common.category': '分类',
41
+ 'common.importanceLabel': '重要性',
42
+ 'common.importance': '重要性 {value}',
43
+ 'common.hops': '{count} 跳',
44
+ 'common.allCategories': '全部分类',
45
+ 'common.memories': '{count} 条记忆',
46
+ 'common.edges': '{count} 条连接',
47
+ 'common.count': '{count} 个',
48
+ 'header.checking': '检查中',
49
+ 'header.connected': '已连接 · {count} 个已激活',
50
+ 'header.directoryPending': '已连接 · 目录待同步',
51
+ 'header.unavailable': '不可用',
52
+ 'header.notReady': 'Mnemon 尚未就绪',
53
+ 'telemetry.aria': '记忆统计',
54
+ 'telemetry.title': '记忆统计',
55
+ 'telemetry.memories': '激活记忆',
56
+ 'telemetry.graph': '激活图谱',
57
+ 'telemetry.entities': '激活实体',
58
+ 'telemetry.spaces': '记忆体',
59
+ 'sidebar.activeSpaces': '已激活记忆体',
60
+ 'overview.title': '记忆体',
61
+ 'overview.description': '管理全局记忆体的读取边界,并在一张实时四图快照中观察所有已激活记忆体。',
62
+ 'overview.interval': '每 15 秒',
63
+ 'overview.syncing': '同步中…',
64
+ 'overview.syncNow': '立即同步',
65
+ 'overview.directory': '记忆体目录',
66
+ 'overview.directory.description': '开关只控制读取;写入可选择任意记忆体,写入未激活记忆体后会自动激活。',
67
+ 'overview.directory.waiting': '等待目录',
68
+ 'overview.directory.unsynced': '目录尚未同步',
69
+ 'overview.directory.unsyncedBadge': '目录待同步',
70
+ 'overview.storageHealthy': '存储正常',
71
+ 'overview.storageUnhealthy': '存储异常',
72
+ 'overview.toggleAria': '{name}读取开关',
73
+ 'overview.toggling': '切换中',
74
+ 'overview.noDescription': '尚未提供路由说明。',
75
+ 'overview.unsyncedTitle': '记忆体目录尚未同步',
76
+ 'overview.unsyncedShort': '当前 Web 客户端与 DSH Host 状态不一致;重启 Host 后会重新登记既有 Store。',
77
+ 'overview.unsyncedLong': '当前 Host 仍在使用旧插件契约;重启 DSH 后会重新发现既有 Store,期间不会删除任何 .db。',
78
+ 'overview.emptyTitle': '还没有记忆体',
79
+ 'overview.emptyShort': '创建第一个记忆体并写入稳定上下文后,它会出现在这里。',
80
+ 'overview.emptyLong': '先在上方创建一个记忆体;首次写入后,它会自动激活并出现在实时快照中。',
81
+ 'overview.noActiveTitle': '没有激活的记忆体',
82
+ 'overview.noActiveText': '开启至少一个记忆体的读取开关,即可在这里聚合它的实时图谱。',
83
+ 'overview.noContentTitle': '已激活记忆体尚无内容',
84
+ 'overview.noContentText': '向任意记忆体沉淀稳定上下文后,这里会聚合呈现节点与关系。',
85
+ 'overview.create': '+ 创建空白记忆体',
86
+ 'overview.createName': '新记忆体名称',
87
+ 'overview.createNamePlaceholder': '名称',
88
+ 'overview.createDescription': '新记忆体描述',
89
+ 'overview.createDescriptionPlaceholder': '说明哪些内容属于它,以及何时应被召回',
90
+ 'overview.creating': '创建中…',
91
+ 'overview.createAction': '创建',
92
+ 'overview.editBody': '编辑',
93
+ 'overview.editBodyAria': '编辑{name}',
94
+ 'overview.editName': '名称',
95
+ 'overview.editDescription': '路由说明',
96
+ 'overview.saveBody': '保存',
97
+ 'overview.savingBody': '保存中…',
98
+ 'overview.snapshot': '多记忆体实时快照',
99
+ 'overview.waitingSnapshot': '等待首个快照',
100
+ 'overview.updatedAt': '更新于 {time}',
101
+ 'overview.edgeScope': '空间归属',
102
+ 'overview.edgeTemporal': '时间',
103
+ 'overview.edgeSemantic': '语义',
104
+ 'overview.edgeCausal': '因果',
105
+ 'overview.edgeEntity': '实体关联',
106
+ 'overview.graphComposition': '{spaces} 个空间 · {memories} 条记忆 · {entities} 个实体',
107
+ 'overview.graphCount': '展示 {visible} / {total} 个元素',
108
+ 'overview.graphEdges': '{count} 条图谱连接',
109
+ 'overview.inspector': '记忆详情',
110
+ 'overview.inspectorSpace': '记忆体详情',
111
+ 'overview.inspectorEntity': '实体详情',
112
+ 'overview.selectNode': '选择一个图谱元素',
113
+ 'overview.selectNodeText': '查看记忆体、实体或记忆的精确上下文。',
114
+ 'overview.closeInspector': '关闭节点详情',
115
+ 'overview.memoryId': '记忆 ID',
116
+ 'overview.spaceId': '记忆体 ID',
117
+ 'overview.containedMemories': '包含记忆',
118
+ 'overview.entityMentions': '索引次数',
119
+ 'overview.exploreNode': '围绕它检索',
120
+ 'overview.previewAria': '查看全文',
121
+ 'overview.previewTitle': '内容全文',
122
+ 'overview.loading': '正在同步记忆体目录与多库图谱…',
123
+ 'runtime.title': '运行时记忆',
124
+ 'runtime.description': '管理每轮随上下文加载的紧凑热记忆。结构化数据由统一控制层维护,并自动投影为 USER.md 与 MEMORY.md。',
125
+ 'runtime.total': '{count} 条热记忆',
126
+ 'runtime.refresh': '刷新',
127
+ 'runtime.hotContext': '每轮上下文',
128
+ 'runtime.addTitle': '添加热记忆',
129
+ 'runtime.addDescription': '稳定但仍需频繁使用的信息优先留在这里,长期归档由 Mnemon 记忆体承接。',
130
+ 'runtime.content': '运行时记忆内容',
131
+ 'runtime.placeholder': '输入一条简洁、独立、未来仍然有用的信息…',
132
+ 'runtime.target': '分类',
133
+ 'runtime.importance': '重要性',
134
+ 'runtime.saving': '处理中…',
135
+ 'runtime.addAction': '添加',
136
+ 'runtime.target.user': '用户画像',
137
+ 'runtime.target.user.description': '身份、角色、习惯、表达偏好与明确的协作要求;容量整理始终留在本地,不进入记忆体。',
138
+ 'runtime.target.memory': '工作记忆',
139
+ 'runtime.target.memory.description': '项目、环境、决策、约定、工具特性与可复用经验;容量达到上限时按主题归档到一个或多个记忆体。',
140
+ 'runtime.importance.critical': '关键',
141
+ 'runtime.importance.normal': '普通',
142
+ 'runtime.importance.low': '低',
143
+ 'runtime.empty': '这个分类还没有热记忆。',
144
+ 'runtime.editContent': '编辑运行时记忆',
145
+ 'runtime.editAction': '编辑',
146
+ 'runtime.saveEdit': '保存修改',
147
+ 'runtime.removeAction': '移除',
148
+ 'runtime.removeConfirm': '确认移除这条热记忆?',
149
+ 'runtime.result.add': '已添加到{target} · 当前 {count} 条',
150
+ 'runtime.result.replace': '已更新{target} · 当前 {count} 条',
151
+ 'runtime.result.remove': '已从{target}移除 · 当前 {count} 条',
152
+ 'runtime.result.maintenance': '容量整理完成:已先归档到记忆体 {spaces},再更新{target} · 当前 {count} 条',
153
+ 'runtime.result.localCompaction': '本地画像整理完成:未写入记忆体,已更新{target} · 当前 {count} 条',
154
+ 'runtime.readOnly': '当前部署为只读模式;热记忆仍会进入上下文,但不能在此修改。',
155
+ 'runtime.footnote': 'memories.json 是唯一事实源;两个 Markdown 文件由控制层生成,不应直接编辑。',
156
+ 'documents.title': '项目档案',
157
+ 'documents.description': '在当前工作区维护结构化的项目文档。活跃档案参与近场检索;达到 10 MB 上限前,最久未使用的档案会先在 Mnemon 中建立索引,再迁入归档。',
158
+ 'documents.capacity': '{used} / {limit}',
159
+ 'documents.refresh': '刷新',
160
+ 'documents.summary': '档案存储摘要',
161
+ 'documents.active': '活跃档案',
162
+ 'documents.activeHint': '近场检索范围',
163
+ 'documents.archivedCount': '归档',
164
+ 'documents.archivedHint': '不占活跃容量',
165
+ 'documents.activeCapacity': '活跃容量',
166
+ 'documents.capacityHint': '按实际 UTF-8 文件大小计算',
167
+ 'documents.searchAria': '检索项目档案',
168
+ 'documents.searchPlaceholder': '搜索设计、调查、流程或交接记录…',
169
+ 'documents.search': '检索',
170
+ 'documents.scope': '档案范围',
171
+ 'documents.new': '新建档案',
172
+ 'documents.newTitle': '创建托管档案',
173
+ 'documents.editTitle': '编辑活跃档案',
174
+ 'documents.editorHint': '控制层会生成 frontmatter、哈希与修订号;原项目文件始终只读。',
175
+ 'documents.managedCopy': '托管副本',
176
+ 'documents.name': '标题',
177
+ 'documents.routing': '检索说明',
178
+ 'documents.sources': '来源路径',
179
+ 'documents.sourcesPlaceholder': 'src/index.ts, docs/architecture.md',
180
+ 'documents.markdown': 'Markdown 内容',
181
+ 'documents.saving': '保存中…',
182
+ 'documents.create': '创建档案',
183
+ 'documents.save': '保存修订',
184
+ 'documents.created': '已创建活跃档案。',
185
+ 'documents.createdAfterArchive': '已先迁移 {count} 份旧档案,再创建活跃档案。',
186
+ 'documents.updated': '已保存新的档案修订。',
187
+ 'documents.updatedAfterArchive': '已先迁移 {count} 份旧档案,再保存修订。',
188
+ 'documents.archived': '已建立 Mnemon 冷索引并归档;关联记忆体:{spaces}',
189
+ 'documents.list': '项目档案列表',
190
+ 'documents.activeList': '活跃目录',
191
+ 'documents.archiveList': '归档目录',
192
+ 'documents.noDescription': '暂无检索说明。',
193
+ 'documents.missing': '文件缺失',
194
+ 'documents.emptyActive': '还没有活跃档案',
195
+ 'documents.emptyActiveText': '复杂对话达到活动评分门槛后会自动审阅并整理档案,也可以在上方手动创建。',
196
+ 'documents.emptyArchived': '还没有归档',
197
+ 'documents.emptyArchivedText': '只有完成 Mnemon 索引的档案才会迁移到这里。',
198
+ 'documents.reader': '档案阅读器',
199
+ 'documents.selectTitle': '选择一份档案',
200
+ 'documents.selectText': '在左侧查看活跃项目知识或沿 Mnemon 引用打开归档原文。',
201
+ 'documents.coldArchive': '归档原文',
202
+ 'documents.edit': '编辑',
203
+ 'documents.path': '托管路径',
204
+ 'documents.revision': '修订',
205
+ 'documents.hash': '内容哈希',
206
+ 'documents.size': '文件大小',
207
+ 'documents.archiveReceipt': 'Mnemon 冷索引回执',
208
+ 'documents.archiveTitle': '迁入归档',
209
+ 'documents.archiveDescription': '先由受限子 Agent 写入可检索的 Mnemon 摘要和精确路径,成功后才移动原文。',
210
+ 'documents.archive': '归档',
211
+ 'documents.archiveConfirm': '确认建立 Mnemon 索引并迁移这份档案?',
212
+ 'documents.archiving': '索引并迁移中…',
213
+ 'documents.archiveNow': '确认归档',
214
+ 'documents.footnote': '`.mnemon/documents/index.json` 是控制面事实源;active 总量固定不超过 10 MB,archived 不计入上限,项目源文件不会被修改。',
215
+ 'graph.layoutAria': '图谱布局',
216
+ 'graph.layoutNatural': '自然布局',
217
+ 'graph.layoutUniform': '均匀布局',
218
+ 'graph.layoutCustom': '自定义布局',
219
+ 'graph.layoutStatus': '布局状态:{layout}',
220
+ 'graph.draggable': '{layout} · 可拖拽',
221
+ 'graph.naturalAction': '自然铺开',
222
+ 'graph.uniformAction': '均匀重置',
223
+ 'graph.aria': 'Mnemon 实时记忆图谱,{nodes} 个元素,{edges} 条连接',
224
+ 'graph.kindSpace': '记忆体',
225
+ 'graph.kindEntity': '实体',
226
+ 'card.confirmAria': '确认忘记记忆',
227
+ 'card.confirmText': '软删除这条记忆?',
228
+ 'card.processing': '处理中…',
229
+ 'card.confirmForget': '确认忘记',
230
+ 'card.related': '查看关联',
231
+ 'card.clone': '基于此新建',
232
+ 'card.forget': '忘记',
233
+ 'search.title': '检索记忆',
234
+ 'search.description': '直连 Mnemon 检索原始证据;需要时可让 Agent 只基于命中内容生成答案。',
235
+ 'search.maxResults': '最多 {count} 条',
236
+ 'search.placeholder': '为什么选用 SQLite?这个项目有哪些发布约定?',
237
+ 'search.queryAria': '记忆查询',
238
+ 'search.categoryAria': '记忆分类',
239
+ 'search.strategy': '策略',
240
+ 'search.modeAria': '检索模式',
241
+ 'search.modeSmart': '图增强召回',
242
+ 'search.modeKeyword': '关键词检索',
243
+ 'search.modeBasic': '基础匹配',
244
+ 'search.searching': '检索中…',
245
+ 'search.action': '直接检索',
246
+ 'search.agentAction': 'Agent 查询',
247
+ 'search.agentSearching': 'Agent 分析中…',
248
+ 'search.agentAnswer': 'Agent 查询结果',
249
+ 'search.agentAnswerHint': '基于下方召回证据',
250
+ 'search.startTitle': '从一个明确问题开始',
251
+ 'search.startText': '聚焦实体、决策或时间线,比批量加载整库更可靠。',
252
+ 'search.emptyTitle': '没有命中',
253
+ 'search.emptyText': '换一个更具体的实体、决策或时间线关键词试试。',
254
+ 'search.results': '原始召回内容',
255
+ 'search.related': '关联记忆',
256
+ 'search.closeRelated': '关闭关联记忆',
257
+ 'search.traversing': '正在遍历图谱…',
258
+ 'search.noRelated': '没有找到两跳内的关联节点。',
259
+ 'entities.title': '实体查阅',
260
+ 'entities.description': '直连 Mnemon 查阅实体跨越事实、决策与上下文的关系。',
261
+ 'entities.count': '{count} 个活跃实体',
262
+ 'entities.nameAria': '实体名称',
263
+ 'entities.placeholder': '输入任意实体…',
264
+ 'entities.action': '查阅',
265
+ 'entities.top': '高频实体',
266
+ 'entities.frequency': '按出现频率',
267
+ 'entities.emptyRail': '写入带实体的记忆后,这里会形成入口。',
268
+ 'entities.loading': '正在沿实体关系召回…',
269
+ 'entities.selectTitle': '选择或输入一个实体',
270
+ 'entities.selectText': '实体视图会聚合与它相关的记忆,而不是只做字面匹配。',
271
+ 'entities.emptyTitle': '没有关联记忆',
272
+ 'entities.emptyText': '尝试更完整的名称或另一个实体别名。',
273
+ 'remember.title': '沉淀记忆',
274
+ 'remember.description': '候选内容会进入隔离的记忆子 Agent,由它选择记忆体、查重、提炼并执行写入,不占用主对话上下文。',
275
+ 'remember.worker': '记忆子 Agent',
276
+ 'remember.readOnlyTitle': '当前为只读模式',
277
+ 'remember.readOnlyText': '当前部署禁止记忆写入;如需调整,请修改 DSH 的 Mnemon 配置并重启。',
278
+ 'remember.flowTitle': '记忆子 Agent 会完成什么',
279
+ 'remember.routeTitle': '判断归属',
280
+ 'remember.routeText': '选择既有记忆体,必要时判断是否形成新范围',
281
+ 'remember.dedupeTitle': '检索查重',
282
+ 'remember.dedupeText': '识别重复、补充或冲突的旧记忆',
283
+ 'remember.writeTitle': '结构化写入',
284
+ 'remember.writeText': '提炼内容、元数据与必要关系并返回回执',
285
+ 'remember.flowText': '子 Agent 只拥有 Mnemon 工具,原始目录和检索过程不会挤占主对话上下文。',
286
+ 'remember.delegateTitle': '交给记忆子 Agent',
287
+ 'remember.noSession': '无可用会话',
288
+ 'remember.ready': '子 Agent 就绪',
289
+ 'remember.candidate': '候选内容',
290
+ 'remember.candidateAria': '待沉淀内容',
291
+ 'remember.placeholder': '输入希望跨任务保留的背景、偏好、决策或洞察。模型会先判断它是否真的值得沉淀。',
292
+ 'remember.sessionHint': '当前视图没有绑定活动会话,无法创建记忆子 Agent。',
293
+ 'remember.processing': '记忆子 Agent 处理中…',
294
+ 'remember.action': '调度子 Agent 判断并沉淀',
295
+ 'remember.advanced': '人工高级选项',
296
+ 'remember.advancedHint': '为记忆子 Agent 指定目标记忆体与元数据约束',
297
+ 'remember.expand': '展开',
298
+ 'remember.target': '目标记忆体',
299
+ 'remember.entities': '实体(逗号分隔)',
300
+ 'remember.tags': '标签(逗号分隔)',
301
+ 'remember.advancedText': '高级选项是约束而不是绕过监督;记忆子 Agent 仍会查重并返回结构化回执。',
302
+ 'remember.saving': '子 Agent 写入中…',
303
+ 'remember.advancedAction': '按高级约束沉淀',
304
+ 'remember.skipped': '记忆子 Agent 判断无需写入',
305
+ 'remember.completed': '记忆子 Agent 已完成处理',
306
+ 'remember.processed': '记忆子 Agent 已处理:{action}',
307
+ 'remember.dispatchFailed': '调度失败:{error}',
308
+ 'remember.saveFailed': '保存失败:{error}',
309
+ 'content.title': '记忆内容',
310
+ 'content.description': '无副作用浏览所有已激活记忆体;每条内容都会标明所属记忆体,可继续查阅或维护。',
311
+ 'content.count': '{count} 条记忆',
312
+ 'content.filterAria': '筛选记忆内容',
313
+ 'content.filterPlaceholder': '按内容或精确 ID 筛选…',
314
+ 'content.categoryAria': '记忆分类',
315
+ 'content.apply': '应用筛选',
316
+ 'content.notice': '内容列表读取已激活记忆体的图谱快照,不会增加 recall 访问计数。',
317
+ 'content.showing': '当前显示 {visible} / {total}',
318
+ 'content.showMore': '再显示 {count} 条',
319
+ 'content.emptyTitle': '没有符合条件的记忆',
320
+ 'content.emptyText': '清空筛选,或前往“沉淀”写入第一条稳定上下文。',
321
+ 'status.title': '系统状态',
322
+ 'status.description': '聚焦 Mnemon 引擎、记忆体目录和子 Agent 编排;连接配置由 DSH 部署统一管理。',
323
+ 'status.nominal': '系统正常',
324
+ 'status.checkRequired': '需要检查',
325
+ 'status.rechecking': '检查中…',
326
+ 'status.recheck': '重新检查',
327
+ 'status.aria': 'Mnemon 运行状态',
328
+ 'status.engine': '记忆引擎',
329
+ 'status.engineConnected': 'Mnemon 已连接',
330
+ 'status.engineUnavailable': 'Mnemon 不可用',
331
+ 'status.engineChecking': '正在检查本地引擎',
332
+ 'status.versionWaiting': '等待版本信息',
333
+ 'status.spaces': '记忆体',
334
+ 'status.activeRatio': '{active} / {total} 已激活',
335
+ 'status.runtime': '运行时',
336
+ 'status.runtimeRatio': '{user} 用户 · {memory} 项目',
337
+ 'status.runtimeBytes': '{bytes} 已使用',
338
+ 'status.runtimeWaiting': '等待同步',
339
+ 'status.runtimeWaitingDetail': '宿主存储清单待返回',
340
+ 'status.directoryUnsynced': '目录尚未同步',
341
+ 'status.activeMemories': '{count} 条激活记忆',
342
+ 'status.documents': '项目档案',
343
+ 'status.documentsWaiting': '等待工作区',
344
+ 'status.documentsSession': '绑定活动会话后可用',
345
+ 'status.documentRatio': '{active} 份活跃 · {archived} 份归档',
346
+ 'status.documentUsage': '{used} / {limit} 活跃容量',
347
+ 'status.router': '子 Agent 路由',
348
+ 'status.routerReady': '记忆子 Agent 可用',
349
+ 'status.sessionMissing': '当前会话未绑定',
350
+ 'status.routerChecking': '正在同步会话能力',
351
+ 'status.orchestrationWaiting': '等待编排状态',
352
+ 'status.workerCounts': '召回 {recalls} · 问答 {answers} · 审查 {reviews} · 档案迁移 {documentArchives} · 热记忆归档 {migrations} · 常规写入 {writes}',
353
+ 'status.workerSummary': '召回 {recalls} · 审查 {reviews} · 写入 {writes} · 失败 {failures}',
354
+ 'status.lifecycle': '子 Agent 生命周期',
355
+ 'status.lifecycleText': 'pre-step 只提供短提示;后台按用户输入、turn、工具调用量与工具多样性累计评分,达标并持续空闲后,由一个 fork 子 Agent 同时审阅热记忆与复杂项目档案。',
356
+ 'status.phaseIdle': '待命',
357
+ 'status.phaseSupervised': '受监督请求',
358
+ 'status.phaseError': '异常',
359
+ 'status.phaseReview': '后台审查',
360
+ 'status.prime': '轻量预备',
361
+ 'status.primeText': '初始化路由状态,不读取目录或记忆',
362
+ 'status.recallWorker': '召回处理',
363
+ 'status.recallText': 'pre-step 只提醒判断,主模型按需发起召回',
364
+ 'status.recallOff': '自动召回已关闭',
365
+ 'status.writeWorker': '评分审查',
366
+ 'status.writeText': '活动评分达到 {threshold} 后再等待空闲 {seconds} 秒,fork 完整 checkpoint 按需维护热记忆与项目档案',
367
+ 'status.writeOff': '后台审查已关闭',
368
+ 'status.latestPhase': '最近阶段',
369
+ 'status.latestActivity': '最近活动',
370
+ 'status.reviewState': '审查状态',
371
+ 'status.reviewPending': '评分已达标,等待空闲',
372
+ 'status.reviewRunning': '正在审查',
373
+ 'status.reviewQualified': '评分已达标,等待本轮完成',
374
+ 'status.reviewAccumulating': '累计信号中',
375
+ 'status.reviewIdle': '累计信号中',
376
+ 'status.activityScore': '活动评分',
377
+ 'status.activitySignals': '累计信号',
378
+ 'status.activitySignalValues': '{chars} 字符 · {turns} turn · {tools} 次工具 · {unique} 种工具',
379
+ 'status.lastReview': '最近审查',
380
+ 'status.noReview': '尚未执行',
381
+ 'status.reviewAt': '{time} · {action} · 触发分 {score}',
382
+ 'status.supervisedRequests': '受监督请求',
383
+ 'status.workerFailures': '子 Agent 失败',
384
+ 'status.reviewDocuments': '最近更新档案',
385
+ 'status.noActivity': '尚无运行记录',
386
+ 'status.quickDiagnostics': '快速诊断',
387
+ 'status.cliExecutable': 'Mnemon CLI 可执行',
388
+ 'status.cliMissing': 'Mnemon CLI 未找到',
389
+ 'status.readingSpaces': '{count} 个记忆体参与读取',
390
+ 'status.directoryWaiting': '记忆体目录等待 Host 同步',
391
+ 'status.webAgentReady': 'WebUI 可创建隔离记忆子 Agent',
392
+ 'status.liveSessionMissing': '缺少活动会话',
393
+ 'status.lifecycleFailures': '生命周期失败 {count} 次',
394
+ 'status.documentsUnavailable': '当前会话的档案目录不可用',
395
+ 'status.documentsHealthy': '{count} 份活跃档案可参与近场检索',
396
+ 'status.nativeAccess': '原生命令',
397
+ 'status.nativeAccessText': '模型侧使用原生 mnemon_* 工具;人工命令不会绕入模型。',
398
+ 'status.engineStorage': '引擎与存储',
399
+ 'status.online': '在线',
400
+ 'status.offline': '离线',
401
+ 'status.mnemonVersion': 'Mnemon 版本',
402
+ 'status.directory': '记忆体目录',
403
+ 'status.activeDbSize': '激活数据库大小',
404
+ 'status.activeCount': '已激活',
405
+ 'status.activeGraphEdges': '激活图谱连接',
406
+ 'status.documentDirectory': '项目档案目录',
407
+ 'status.activeDocuments': '活跃档案',
408
+ 'status.coldDocuments': '归档',
409
+ 'status.documentCapacity': '活跃档案容量',
410
+ 'status.storageDomains': '存储域',
411
+ 'status.storageDomainsText': '当前选择决定热记忆、记忆体、项目档案和后台状态共同使用的目录边界。',
412
+ 'status.storageBrowseOnly': '查看不会切换写入',
413
+ 'status.storageScopeAria': '选择要查看的存储域',
414
+ 'status.storageGlobal': '全局',
415
+ 'status.storageWorkspace': '工作区',
416
+ 'status.storageCustom': '自定义',
417
+ 'status.storageCurrent': '当前读写',
418
+ 'status.storageWaiting': '正在读取存储域目录…',
419
+ 'status.storageCustomUnset': '尚未配置自定义目录。当前只展示已经由 DSH 配置并启用的自定义根。',
420
+ 'status.storageWorkspaceUnavailable': '当前会话没有可用的工作区目录。',
421
+ 'status.storageActiveRoot': '当前读写根',
422
+ 'status.storageViewedRoot': '查看根',
423
+ 'status.storageAvailable': '目录可用',
424
+ 'status.storageNotCreated': '目录尚未创建',
425
+ 'status.storageRuntime': '运行时记忆',
426
+ 'status.storageBodies': '记忆体',
427
+ 'status.storageDocuments': '项目档案',
428
+ 'status.storageState': '后台状态',
429
+ 'status.storageReady': '正常',
430
+ 'status.storageEmpty': '空',
431
+ 'status.storageMissing': '未创建',
432
+ 'status.storageInvalid': '需修复',
433
+ 'status.storageItems': '项',
434
+ 'status.storageRuntimeDetail': 'USER {user} · MEMORY {memory}',
435
+ 'status.storageBodiesDetail': '{active} 个激活 · {databases} 个数据库',
436
+ 'status.storageDocumentsDetail': '{active} 份活跃 · {archived} 份归档',
437
+ 'status.storageStateReady': '审阅水位已经持久化',
438
+ 'status.storageStateVolatile': '当前审阅状态仍由 Host 进程维护',
439
+ 'status.storageFootnote': '当前实际读写根:{root}。存储范围只在 DSH「设置 → 插件配置 → Mnemon」中修改,重启后生效;插件不会自动迁移、合并或删除旧内容。',
440
+ 'status.flowTitle': '记忆系统流转',
441
+ 'status.flowDescription': '按真实执行边界展开每轮注入、确定性文件控制、语义 worker、CLI 数据面、归档与 fork 审查。',
442
+ 'status.flowLive': '实时状态',
443
+ 'status.flowDegraded': '部分不可用',
444
+ 'status.flowConversation': '用户 / 当前任务',
445
+ 'status.flowTurns': '当前轮输入与工具轨迹',
446
+ 'status.flowSupervisor': 'Root Agent',
447
+ 'status.flowEntries': '{count} 条热记忆',
448
+ 'status.flowDocuments': '{active} 份活跃 · {archived} 份归档',
449
+ 'status.flowContext': '证据 / 回执',
450
+ 'status.flowContextDetail': '结构化结果返回当前任务',
451
+ 'status.flowReadWrite': '确定性 Host 路径',
452
+ 'status.flowArchive': 'LLM 监督路径',
453
+ 'status.flowCurrentScope': '当前范围:{scope}',
454
+ 'status.flowLaneContext': '每轮上下文',
455
+ 'status.flowLaneContextDetail': 'Runtime 每轮注入;Documents 仅按需检索',
456
+ 'status.flowLaneSemantic': '按需语义操作',
457
+ 'status.flowLaneSemanticDetail': '隔离 worker 决策,Host 服务执行',
458
+ 'status.flowLaneMaintenance': '空闲维护与归档',
459
+ 'status.flowLaneMaintenanceDetail': 'fork 审查与先索引后迁移',
460
+ 'status.flowRuntimeMeta': 'USER.md + MEMORY.md · {count} 条',
461
+ 'status.flowPromptAssembly': '每轮 prompt assembly',
462
+ 'status.flowDocumentSearch': 'Document 确定性检索',
463
+ 'status.flowOnDemand': '按需,不注入全文',
464
+ 'status.flowRootMeta': '路由工具调用,不直接访问 SQLite',
465
+ 'status.flowStructuredReturn': '结构化证据 / 回执',
466
+ 'status.flowEvidenceMeta': '带来源返回 Root Agent',
467
+ 'status.flowSemanticRequest': 'recall · write · related',
468
+ 'status.flowSpawnWorker': 'spawn 隔离 worker',
469
+ 'status.flowSpawnMeta': '语义判断 · 最小工具白名单',
470
+ 'status.flowService': 'MnemonService',
471
+ 'status.flowServiceMeta': '校验 · 归一化 · 聚合',
472
+ 'status.flowRunnerCli': 'Runner → 本地 CLI',
473
+ 'status.flowRunnerCliMeta': '超时 / 取消 / JSON 进程边界',
474
+ 'status.flowHostBridge': 'Mnemon Host Bridge',
475
+ 'status.flowHostBridgeMeta': 'Service → Runner → 本地 CLI',
476
+ 'status.flowSpacesMeta': '{active}/{total} 已激活 · {insights} 条记忆',
477
+ 'status.flowDeterministicWrites': '普通 Runtime 与 Document 变更',
478
+ 'status.flowDeterministicWritesMeta': 'add / replace / remove · create / update',
479
+ 'status.flowControlPlane': 'Host 确定性控制层',
480
+ 'status.flowControlPlaneMeta': '锁 · 原子写 · revision · 容量',
481
+ 'status.flowReviewGate': '活动评分与空闲门控',
482
+ 'status.flowReviewGateMeta': '{score}/{threshold} · idle {seconds}s',
483
+ 'status.flowForkReview': 'fork 完成检查点',
484
+ 'status.flowForkReviewMeta': '{state} · 只维护 Runtime / Document',
485
+ 'status.flowReviewTargets': 'Runtime / active Document',
486
+ 'status.flowReviewTargetsMeta': '保守维护 · 新轮次会取消审查',
487
+ 'status.flowColdArchive': 'spawn 归档 worker',
488
+ 'status.flowColdArchiveMeta': '容量维护 / 人工归档',
489
+ 'status.flowIndexFirst': '1 · 先写 / 验证 Mnemon 冷索引',
490
+ 'status.flowRevisionMove': '2 · revision fence 后迁移原文',
491
+ 'status.flowRevisionMoveMeta': '{archived} 份已归档 · 失败或冲突保留 active',
492
+ 'status.flowArchivedDocuments': '已归档 Documents',
493
+ 'status.flowRecent': '最近活动',
494
+ 'status.flowRunning': '正在运行',
495
+ 'status.flowPending': '等待空闲',
496
+ 'status.flowStatic': '执行边界',
497
+ 'status.flowLegendReady': '可用 / 已就绪',
498
+ 'status.flowLegendRecent': '当前或最近链路',
499
+ 'status.flowLegendBoundary': '虚线表示 LLM 判断边界',
500
+ 'config.aria': 'Mnemon 插件配置',
501
+ 'config.description': '为运行时记忆、项目档案、记忆体和后台状态选择同一个存储边界。',
502
+ 'config.unsaved': '有未保存修改',
503
+ 'config.restart': '重启后生效',
504
+ 'config.noticeBefore': '配置写入',
505
+ 'config.noticeAfter': ',重启 DSH 后应用;切换范围不会自动迁移旧内容。',
506
+ 'config.scope': '存储范围',
507
+ 'config.scopeHint': '全局供所有工作区共享;工作区使用 DSH 启动目录;自定义使用指定目录。',
508
+ 'config.scopeAria': 'Mnemon 存储范围',
509
+ 'config.global': '全局',
510
+ 'config.workspace': '工作区',
511
+ 'config.custom': '自定义目录',
512
+ 'config.customDirectory': '自定义目录',
513
+ 'config.customHint': '必须为绝对路径或以 ~/ 开头;整个 Mnemon 数据域都位于此处。',
514
+ 'config.customAria': 'Mnemon 自定义数据目录',
515
+ 'config.invalidScope': '存储范围无效。',
516
+ 'config.customRequired': '选择自定义存储时必须填写数据目录。',
517
+ 'config.customAbsolute': '自定义目录必须是绝对路径或以 ~/ 开头。',
518
+ 'config.saveFailed': '保存失败:{error}',
519
+ 'config.readOnly': '当前部署的插件设置为只读。',
520
+ 'config.discard': '放弃修改',
521
+ 'config.saving': '保存中…',
522
+ 'config.save': '保存到 settings.yaml',
523
+ 'config.overridden': '已覆盖',
524
+ 'config.reset': '恢复默认',
525
+ };
526
+ export const en = {
527
+ 'tab.label': 'Memory System',
528
+ 'term.space': 'Memory Space',
529
+ 'term.spaces': 'Memory Spaces',
530
+ 'category.decision': 'Decision',
531
+ 'category.preference': 'Preference',
532
+ 'category.fact': 'Fact',
533
+ 'category.insight': 'Insight',
534
+ 'category.context': 'Context',
535
+ 'category.general': 'General',
536
+ 'nav.aria': 'Mnemon pages',
537
+ 'nav.group.system': 'System',
538
+ 'nav.group.storage': 'Memory tiers',
539
+ 'nav.group.tools': 'Read and write',
540
+ 'nav.bodies': 'Memory Spaces',
541
+ 'nav.bodies.detail': 'Directory and live graph',
542
+ 'nav.runtime': 'Runtime',
543
+ 'nav.runtime.detail': 'Hot memory and context',
544
+ 'nav.documents': 'Documents',
545
+ 'nav.documents.detail': 'Project knowledge and archive',
546
+ 'nav.search': 'Recall',
547
+ 'nav.search.detail': 'Intent-aware retrieval',
548
+ 'nav.entities': 'Entities',
549
+ 'nav.entities.detail': 'Relations and context',
550
+ 'nav.remember': 'Distill',
551
+ 'nav.remember.detail': 'LLM-supervised writeback',
552
+ 'nav.content': 'Content',
553
+ 'nav.content.detail': 'Browse and maintain',
554
+ 'nav.status': 'Status',
555
+ 'nav.status.detail': 'Runtime and diagnostics',
556
+ 'common.refresh': 'Refresh status',
557
+ 'common.loading': 'Loading…',
558
+ 'common.cancel': 'Cancel',
559
+ 'common.copyId': 'Copy ID',
560
+ 'common.readOnly': 'Read only',
561
+ 'common.agentSupervised': 'Subagent supervised',
562
+ 'common.active': 'Active',
563
+ 'common.inactive': 'Inactive',
564
+ 'common.category': 'Category',
565
+ 'common.importanceLabel': 'Importance',
566
+ 'common.importance': 'Importance {value}',
567
+ 'common.hops': '{count} hops',
568
+ 'common.allCategories': 'All categories',
569
+ 'common.memories': '{count} memories',
570
+ 'common.edges': '{count} edges',
571
+ 'common.count': '{count}',
572
+ 'header.checking': 'Checking',
573
+ 'header.connected': 'Connected · {count} active',
574
+ 'header.directoryPending': 'Connected · directory pending',
575
+ 'header.unavailable': 'Unavailable',
576
+ 'header.notReady': 'Mnemon is not ready',
577
+ 'telemetry.aria': 'Memory statistics',
578
+ 'telemetry.title': 'Memory statistics',
579
+ 'telemetry.memories': 'Active memories',
580
+ 'telemetry.graph': 'Active graph',
581
+ 'telemetry.entities': 'Active entities',
582
+ 'telemetry.spaces': 'Spaces',
583
+ 'sidebar.activeSpaces': 'Active Memory Spaces',
584
+ 'overview.title': 'Memory Spaces',
585
+ 'overview.description': 'Control the global read boundary and inspect all active Memory Spaces in one live four-graph snapshot.',
586
+ 'overview.interval': 'Every 15 seconds',
587
+ 'overview.syncing': 'Syncing…',
588
+ 'overview.syncNow': 'Sync now',
589
+ 'overview.directory': 'Memory Space Directory',
590
+ 'overview.directory.description': 'Activation controls reads only. Writes may target any space and automatically activate an inactive target.',
591
+ 'overview.directory.waiting': 'Waiting for directory',
592
+ 'overview.directory.unsynced': 'Directory not synchronized',
593
+ 'overview.directory.unsyncedBadge': 'Directory pending',
594
+ 'overview.storageHealthy': 'Storage healthy',
595
+ 'overview.storageUnhealthy': 'Storage unavailable',
596
+ 'overview.toggleAria': '{name} read toggle',
597
+ 'overview.toggling': 'Switching',
598
+ 'overview.noDescription': 'No routing description yet.',
599
+ 'overview.unsyncedTitle': 'Memory Space directory is not synchronized',
600
+ 'overview.unsyncedShort': 'The Web client and DSH Host are using different contracts. Restart the Host to register existing Stores.',
601
+ 'overview.unsyncedLong': 'The Host is still using the previous plugin contract. Restart DSH to rediscover existing Stores; no .db file will be deleted.',
602
+ 'overview.emptyTitle': 'No Memory Spaces yet',
603
+ 'overview.emptyShort': 'Create the first space and distill durable context into it.',
604
+ 'overview.emptyLong': 'Create a Memory Space above. Its first write will activate it and add it to the live snapshot.',
605
+ 'overview.noActiveTitle': 'No active Memory Spaces',
606
+ 'overview.noActiveText': 'Enable read access for at least one space to aggregate its live graph here.',
607
+ 'overview.noContentTitle': 'Active spaces have no content yet',
608
+ 'overview.noContentText': 'Distill durable context into a space to populate nodes and relations.',
609
+ 'overview.create': '+ Create empty Memory Space',
610
+ 'overview.createName': 'New Memory Space name',
611
+ 'overview.createNamePlaceholder': 'Name',
612
+ 'overview.createDescription': 'New Memory Space description',
613
+ 'overview.createDescriptionPlaceholder': 'Describe what belongs here and when it should be recalled',
614
+ 'overview.creating': 'Creating…',
615
+ 'overview.createAction': 'Create',
616
+ 'overview.editBody': 'Edit',
617
+ 'overview.editBodyAria': 'Edit {name}',
618
+ 'overview.editName': 'Name',
619
+ 'overview.editDescription': 'Routing description',
620
+ 'overview.saveBody': 'Save',
621
+ 'overview.savingBody': 'Saving…',
622
+ 'overview.snapshot': 'Live multi-space snapshot',
623
+ 'overview.waitingSnapshot': 'Waiting for the first snapshot',
624
+ 'overview.updatedAt': 'Updated at {time}',
625
+ 'overview.edgeScope': 'Space scope',
626
+ 'overview.edgeTemporal': 'Temporal',
627
+ 'overview.edgeSemantic': 'Semantic',
628
+ 'overview.edgeCausal': 'Causal',
629
+ 'overview.edgeEntity': 'Entity relation',
630
+ 'overview.graphComposition': '{spaces} spaces · {memories} memories · {entities} entities',
631
+ 'overview.graphCount': 'Showing {visible} / {total} elements',
632
+ 'overview.graphEdges': '{count} graph edges',
633
+ 'overview.inspector': 'Memory details',
634
+ 'overview.inspectorSpace': 'Memory Space details',
635
+ 'overview.inspectorEntity': 'Entity details',
636
+ 'overview.selectNode': 'Select a graph element',
637
+ 'overview.selectNodeText': 'Inspect the exact context for a Memory Space, entity, or memory.',
638
+ 'overview.closeInspector': 'Close node details',
639
+ 'overview.memoryId': 'Memory ID',
640
+ 'overview.spaceId': 'Memory Space ID',
641
+ 'overview.containedMemories': 'Contained memories',
642
+ 'overview.entityMentions': 'Indexed mentions',
643
+ 'overview.exploreNode': 'Recall around this',
644
+ 'overview.previewAria': 'View full content',
645
+ 'overview.previewTitle': 'Full content',
646
+ 'overview.loading': 'Synchronizing the directory and multi-space graph…',
647
+ 'runtime.title': 'Runtime Memory',
648
+ 'runtime.description': 'Manage compact hot memory loaded into every turn. A single control plane owns structured data and projects USER.md and MEMORY.md.',
649
+ 'runtime.total': '{count} hot memories',
650
+ 'runtime.refresh': 'Refresh',
651
+ 'runtime.hotContext': 'Every-turn context',
652
+ 'runtime.addTitle': 'Add hot memory',
653
+ 'runtime.addDescription': 'Keep stable, frequently useful information here; Mnemon Memory Spaces remain the durable archive.',
654
+ 'runtime.content': 'Runtime memory content',
655
+ 'runtime.placeholder': 'Enter one compact, self-contained fact that will remain useful…',
656
+ 'runtime.target': 'Target',
657
+ 'runtime.importance': 'Importance',
658
+ 'runtime.saving': 'Working…',
659
+ 'runtime.addAction': 'Add',
660
+ 'runtime.target.user': 'User Profile',
661
+ 'runtime.target.user.description': 'Identity, role, habits, communication preferences, and explicit collaboration requirements. Capacity maintenance stays local and never enters a Memory Space.',
662
+ 'runtime.target.memory': 'Working Memory',
663
+ 'runtime.target.memory.description': 'Projects, environment, decisions, conventions, tool behavior, and reusable lessons. At capacity, entries are routed into one or more topic-specific Memory Spaces.',
664
+ 'runtime.importance.critical': 'Critical',
665
+ 'runtime.importance.normal': 'Normal',
666
+ 'runtime.importance.low': 'Low',
667
+ 'runtime.empty': 'No hot memory in this target yet.',
668
+ 'runtime.editContent': 'Edit runtime memory',
669
+ 'runtime.editAction': 'Edit',
670
+ 'runtime.saveEdit': 'Save change',
671
+ 'runtime.removeAction': 'Remove',
672
+ 'runtime.removeConfirm': 'Remove this hot-memory entry?',
673
+ 'runtime.result.add': 'Added to {target} · {count} entries',
674
+ 'runtime.result.replace': 'Updated {target} · {count} entries',
675
+ 'runtime.result.remove': 'Removed from {target} · {count} entries',
676
+ 'runtime.result.maintenance': 'Capacity maintenance complete: archived to {spaces}, then updated {target} · {count} entries',
677
+ 'runtime.result.localCompaction': 'Local profile compaction complete: no Memory Space write; updated {target} · {count} entries',
678
+ 'runtime.readOnly': 'This deployment is read only. Hot memory still enters context but cannot be changed here.',
679
+ 'runtime.footnote': 'memories.json is the only source of truth. The control plane generates both Markdown files; do not edit them directly.',
680
+ 'documents.title': 'Project Documents',
681
+ 'documents.description': 'Maintain structured project documents in the current workspace. Active documents support near-field search; before the 10 MB limit is exceeded, the least-recently-used document is indexed in Mnemon and moved to the archive.',
682
+ 'documents.capacity': '{used} / {limit}',
683
+ 'documents.refresh': 'Refresh',
684
+ 'documents.summary': 'Document storage summary',
685
+ 'documents.active': 'Active',
686
+ 'documents.activeHint': 'Near-field search scope',
687
+ 'documents.archivedCount': 'Archive',
688
+ 'documents.archivedHint': 'Excluded from active capacity',
689
+ 'documents.activeCapacity': 'Active capacity',
690
+ 'documents.capacityHint': 'Measured from actual UTF-8 files',
691
+ 'documents.searchAria': 'Search project documents',
692
+ 'documents.searchPlaceholder': 'Search designs, investigations, procedures, or handoffs…',
693
+ 'documents.search': 'Search',
694
+ 'documents.scope': 'Document scope',
695
+ 'documents.new': 'New document',
696
+ 'documents.newTitle': 'Create managed document',
697
+ 'documents.editTitle': 'Edit active document',
698
+ 'documents.editorHint': 'The control plane generates frontmatter, hashes, and revisions. Project source files stay read only.',
699
+ 'documents.managedCopy': 'Managed copy',
700
+ 'documents.name': 'Title',
701
+ 'documents.routing': 'Retrieval description',
702
+ 'documents.sources': 'Source paths',
703
+ 'documents.sourcesPlaceholder': 'src/index.ts, docs/architecture.md',
704
+ 'documents.markdown': 'Markdown content',
705
+ 'documents.saving': 'Saving…',
706
+ 'documents.create': 'Create document',
707
+ 'documents.save': 'Save revision',
708
+ 'documents.created': 'Active document created.',
709
+ 'documents.createdAfterArchive': 'Archived {count} older document(s), then created the active document.',
710
+ 'documents.updated': 'New document revision saved.',
711
+ 'documents.updatedAfterArchive': 'Archived {count} older document(s), then saved the revision.',
712
+ 'documents.archived': 'Mnemon cold index created and document archived; Memory Spaces: {spaces}',
713
+ 'documents.list': 'Project document list',
714
+ 'documents.activeList': 'Active directory',
715
+ 'documents.archiveList': 'Archive directory',
716
+ 'documents.noDescription': 'No retrieval description.',
717
+ 'documents.missing': 'File missing',
718
+ 'documents.emptyActive': 'No active documents yet',
719
+ 'documents.emptyActiveText': 'Complex work is reviewed after it reaches the activity-score gate, or you can create a Document above.',
720
+ 'documents.emptyArchived': 'No archives yet',
721
+ 'documents.emptyArchivedText': 'Only documents with a completed Mnemon index are moved here.',
722
+ 'documents.reader': 'Document reader',
723
+ 'documents.selectTitle': 'Select a document',
724
+ 'documents.selectText': 'Read active project knowledge or follow a Mnemon reference to an archived original.',
725
+ 'documents.coldArchive': 'Archived original',
726
+ 'documents.edit': 'Edit',
727
+ 'documents.path': 'Managed path',
728
+ 'documents.revision': 'Revision',
729
+ 'documents.hash': 'Content hash',
730
+ 'documents.size': 'File size',
731
+ 'documents.archiveReceipt': 'Mnemon cold-index receipt',
732
+ 'documents.archiveTitle': 'Move to archive',
733
+ 'documents.archiveDescription': 'A restricted subagent first stores a searchable Mnemon summary and exact path. The original moves only after that succeeds.',
734
+ 'documents.archive': 'Archive',
735
+ 'documents.archiveConfirm': 'Create the Mnemon index and archive this document?',
736
+ 'documents.archiving': 'Indexing and moving…',
737
+ 'documents.archiveNow': 'Confirm archive',
738
+ 'documents.footnote': '`.mnemon/documents/index.json` is the control-plane source of truth. active stays at or below 10 MB, archived is excluded, and project source files are never modified.',
739
+ 'graph.layoutAria': 'Graph layout',
740
+ 'graph.layoutNatural': 'Natural layout',
741
+ 'graph.layoutUniform': 'Uniform layout',
742
+ 'graph.layoutCustom': 'Custom layout',
743
+ 'graph.layoutStatus': 'Layout: {layout}',
744
+ 'graph.draggable': '{layout} · draggable',
745
+ 'graph.naturalAction': 'Natural spread',
746
+ 'graph.uniformAction': 'Uniform reset',
747
+ 'graph.aria': 'Mnemon live memory graph with {nodes} elements and {edges} edges',
748
+ 'graph.kindSpace': 'Memory Space',
749
+ 'graph.kindEntity': 'Entity',
750
+ 'card.confirmAria': 'Confirm forgetting memory',
751
+ 'card.confirmText': 'Soft-delete this memory?',
752
+ 'card.processing': 'Processing…',
753
+ 'card.confirmForget': 'Confirm forget',
754
+ 'card.related': 'View related',
755
+ 'card.clone': 'Create from this',
756
+ 'card.forget': 'Forget',
757
+ 'search.title': 'Recall Memory',
758
+ 'search.description': 'Query raw Mnemon evidence directly, then optionally ask an Agent to answer from those matches only.',
759
+ 'search.maxResults': 'Up to {count} results',
760
+ 'search.placeholder': 'Why did we choose SQLite? What release conventions apply?',
761
+ 'search.queryAria': 'Memory query',
762
+ 'search.categoryAria': 'Memory category',
763
+ 'search.strategy': 'Strategy',
764
+ 'search.modeAria': 'Recall mode',
765
+ 'search.modeSmart': 'Graph-enhanced recall',
766
+ 'search.modeKeyword': 'Keyword search',
767
+ 'search.modeBasic': 'Basic match',
768
+ 'search.searching': 'Recalling…',
769
+ 'search.action': 'Direct search',
770
+ 'search.agentAction': 'Ask Agent',
771
+ 'search.agentSearching': 'Agent analyzing…',
772
+ 'search.agentAnswer': 'Agent answer',
773
+ 'search.agentAnswerHint': 'Grounded in the recalled evidence below',
774
+ 'search.startTitle': 'Start with a focused question',
775
+ 'search.startText': 'A focused entity, decision, or timeline is more reliable than loading the whole database.',
776
+ 'search.emptyTitle': 'No matches',
777
+ 'search.emptyText': 'Try a more specific entity, decision, or timeline keyword.',
778
+ 'search.results': 'Raw recalled evidence',
779
+ 'search.related': 'Related memories',
780
+ 'search.closeRelated': 'Close related memories',
781
+ 'search.traversing': 'Traversing the graph…',
782
+ 'search.noRelated': 'No related nodes found within two hops.',
783
+ 'entities.title': 'Entity Explorer',
784
+ 'entities.description': 'Query Mnemon directly for an entity\'s facts, decisions, and context.',
785
+ 'entities.count': '{count} active entities',
786
+ 'entities.nameAria': 'Entity name',
787
+ 'entities.placeholder': 'Enter any entity…',
788
+ 'entities.action': 'Explore',
789
+ 'entities.top': 'Top entities',
790
+ 'entities.frequency': 'By frequency',
791
+ 'entities.emptyRail': 'Entities appear here after memories with entity metadata are stored.',
792
+ 'entities.loading': 'Recalling entity relations…',
793
+ 'entities.selectTitle': 'Select or enter an entity',
794
+ 'entities.selectText': 'The entity view aggregates related memories instead of relying on literal matching.',
795
+ 'entities.emptyTitle': 'No related memories',
796
+ 'entities.emptyText': 'Try the full name or another entity alias.',
797
+ 'remember.title': 'Distill Memory',
798
+ 'remember.description': 'An isolated memory subagent selects a Memory Space, checks duplicates, distills the candidate, and completes the write without filling the main conversation context.',
799
+ 'remember.worker': 'Memory subagent',
800
+ 'remember.readOnlyTitle': 'Read-only mode',
801
+ 'remember.readOnlyText': 'This deployment disables memory writes. Change the DSH Mnemon configuration and restart to enable them.',
802
+ 'remember.flowTitle': 'What the memory subagent does',
803
+ 'remember.routeTitle': 'Choose ownership',
804
+ 'remember.routeText': 'Select an existing Memory Space or recognize a durable new scope',
805
+ 'remember.dedupeTitle': 'Search and deduplicate',
806
+ 'remember.dedupeText': 'Identify duplicates, additions, or conflicts with existing memories',
807
+ 'remember.writeTitle': 'Write structured memory',
808
+ 'remember.writeText': 'Distill content and metadata, create useful relations, and return a receipt',
809
+ 'remember.flowText': 'The subagent only receives Mnemon tools, keeping the raw directory and retrieval process out of the main context.',
810
+ 'remember.delegateTitle': 'Send to memory subagent',
811
+ 'remember.noSession': 'No live session',
812
+ 'remember.ready': 'Subagent ready',
813
+ 'remember.candidate': 'Candidate',
814
+ 'remember.candidateAria': 'Memory candidate',
815
+ 'remember.placeholder': 'Enter background, preferences, decisions, or insights worth retaining across tasks. The model decides whether they qualify.',
816
+ 'remember.sessionHint': 'This view is not bound to a live session, so it cannot start a memory subagent.',
817
+ 'remember.processing': 'Memory subagent is working…',
818
+ 'remember.action': 'Evaluate and distill',
819
+ 'remember.advanced': 'Advanced human constraints',
820
+ 'remember.advancedHint': 'Constrain the target Memory Space and metadata',
821
+ 'remember.expand': 'Expand',
822
+ 'remember.target': 'Target Memory Space',
823
+ 'remember.entities': 'Entities (comma-separated)',
824
+ 'remember.tags': 'Tags (comma-separated)',
825
+ 'remember.advancedText': 'Advanced options constrain the subagent; they do not bypass supervision or duplicate checks.',
826
+ 'remember.saving': 'Subagent is writing…',
827
+ 'remember.advancedAction': 'Distill with constraints',
828
+ 'remember.skipped': 'The memory subagent decided not to write',
829
+ 'remember.completed': 'The memory subagent completed processing',
830
+ 'remember.processed': 'Memory subagent processed: {action}',
831
+ 'remember.dispatchFailed': 'Dispatch failed: {error}',
832
+ 'remember.saveFailed': 'Save failed: {error}',
833
+ 'content.title': 'Memory Content',
834
+ 'content.description': 'Browse active Memory Spaces without recall side effects. Every item identifies its owning space and remains maintainable.',
835
+ 'content.count': '{count} memories',
836
+ 'content.filterAria': 'Filter memory content',
837
+ 'content.filterPlaceholder': 'Filter by content or exact ID…',
838
+ 'content.categoryAria': 'Memory category',
839
+ 'content.apply': 'Apply filters',
840
+ 'content.notice': 'The list reads active graph snapshots without increasing recall access counts.',
841
+ 'content.showing': 'Showing {visible} / {total}',
842
+ 'content.showMore': 'Show {count} more',
843
+ 'content.emptyTitle': 'No matching memories',
844
+ 'content.emptyText': 'Clear the filters or distill the first durable memory.',
845
+ 'status.title': 'System Status',
846
+ 'status.description': 'Mnemon engine, Memory Space directory, and subagent orchestration. DSH deployment owns connection configuration.',
847
+ 'status.nominal': 'System nominal',
848
+ 'status.checkRequired': 'Check required',
849
+ 'status.rechecking': 'Checking…',
850
+ 'status.recheck': 'Check again',
851
+ 'status.aria': 'Mnemon runtime status',
852
+ 'status.engine': 'Memory engine',
853
+ 'status.engineConnected': 'Mnemon connected',
854
+ 'status.engineUnavailable': 'Mnemon unavailable',
855
+ 'status.engineChecking': 'Checking the local engine',
856
+ 'status.versionWaiting': 'Waiting for version',
857
+ 'status.spaces': 'Memory Spaces',
858
+ 'status.activeRatio': '{active} / {total} active',
859
+ 'status.runtime': 'Runtime',
860
+ 'status.runtimeRatio': '{user} user · {memory} project',
861
+ 'status.runtimeBytes': '{bytes} used',
862
+ 'status.runtimeWaiting': 'Waiting',
863
+ 'status.runtimeWaitingDetail': 'Awaiting the Host storage inventory',
864
+ 'status.directoryUnsynced': 'Directory not synchronized',
865
+ 'status.activeMemories': '{count} active memories',
866
+ 'status.documents': 'Project Documents',
867
+ 'status.documentsWaiting': 'Waiting for workspace',
868
+ 'status.documentsSession': 'Available after binding a live session',
869
+ 'status.documentRatio': '{active} active · {archived} archived',
870
+ 'status.documentUsage': '{used} / {limit} active capacity',
871
+ 'status.router': 'Subagent router',
872
+ 'status.routerReady': 'Memory subagent available',
873
+ 'status.sessionMissing': 'No live session bound',
874
+ 'status.routerChecking': 'Synchronizing session capabilities',
875
+ 'status.orchestrationWaiting': 'Waiting for orchestration status',
876
+ 'status.workerCounts': '{recalls} recalls · {answers} answers · {reviews} reviews · {documentArchives} document moves · {migrations} hot-memory archives · {writes} regular writes',
877
+ 'status.workerSummary': '{recalls} recalls · {reviews} reviews · {writes} writes · {failures} failed',
878
+ 'status.lifecycle': 'Subagent Lifecycle',
879
+ '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.',
880
+ 'status.phaseIdle': 'Idle',
881
+ 'status.phaseSupervised': 'Supervised request',
882
+ 'status.phaseError': 'Error',
883
+ 'status.phaseReview': 'Background review',
884
+ 'status.prime': 'Prime',
885
+ 'status.primeText': 'Initialize routing state without reading the directory or memory',
886
+ 'status.recallWorker': 'Recall worker',
887
+ 'status.recallText': 'Pre-step only prompts a decision; the main model recalls on demand',
888
+ 'status.recallOff': 'Automatic recall is disabled',
889
+ 'status.writeWorker': 'Scored review',
890
+ 'status.writeText': 'After activity reaches {threshold}, wait {seconds}s idle, fork the full checkpoint, and maintain hot memory or Documents only when justified',
891
+ 'status.writeOff': 'Background review is disabled',
892
+ 'status.latestPhase': 'Latest phase',
893
+ 'status.latestActivity': 'Latest activity',
894
+ 'status.reviewState': 'Review state',
895
+ 'status.reviewPending': 'Score reached; waiting for idle',
896
+ 'status.reviewRunning': 'Reviewing',
897
+ 'status.reviewQualified': 'Score reached; waiting for turn completion',
898
+ 'status.reviewAccumulating': 'Accumulating signals',
899
+ 'status.reviewIdle': 'Accumulating signals',
900
+ 'status.activityScore': 'Activity score',
901
+ 'status.activitySignals': 'Accumulated signals',
902
+ 'status.activitySignalValues': '{chars} chars · {turns} turns · {tools} tool calls · {unique} tools',
903
+ 'status.lastReview': 'Last review',
904
+ 'status.noReview': 'Not run yet',
905
+ 'status.reviewAt': '{time} · {action} · trigger score {score}',
906
+ 'status.supervisedRequests': 'Supervised requests',
907
+ 'status.workerFailures': 'Subagent failures',
908
+ 'status.reviewDocuments': 'Documents in last review',
909
+ 'status.noActivity': 'No activity yet',
910
+ 'status.quickDiagnostics': 'Quick Diagnostics',
911
+ 'status.cliExecutable': 'Mnemon CLI executable',
912
+ 'status.cliMissing': 'Mnemon CLI not found',
913
+ 'status.readingSpaces': '{count} Memory Spaces participate in reads',
914
+ 'status.directoryWaiting': 'Memory Space directory is waiting for Host synchronization',
915
+ 'status.webAgentReady': 'WebUI can start isolated memory subagents',
916
+ 'status.liveSessionMissing': 'Live session missing',
917
+ 'status.lifecycleFailures': '{count} lifecycle failures',
918
+ 'status.documentsUnavailable': 'Document directory unavailable for this session',
919
+ 'status.documentsHealthy': '{count} active document(s) available for near-field search',
920
+ 'status.nativeAccess': 'Native commands',
921
+ 'status.nativeAccessText': 'Models use native mnemon_* tools. Human commands still use supervised routing.',
922
+ 'status.engineStorage': 'Engine and Storage',
923
+ 'status.online': 'Online',
924
+ 'status.offline': 'Offline',
925
+ 'status.mnemonVersion': 'Mnemon version',
926
+ 'status.directory': 'Memory Space directory',
927
+ 'status.activeDbSize': 'Active database size',
928
+ 'status.activeCount': 'Active',
929
+ 'status.activeGraphEdges': 'Active graph edges',
930
+ 'status.documentDirectory': 'Project Documents directory',
931
+ 'status.activeDocuments': 'Active Documents',
932
+ 'status.coldDocuments': 'Archives',
933
+ 'status.documentCapacity': 'Active document capacity',
934
+ 'status.storageDomains': 'Storage Domains',
935
+ 'status.storageDomainsText': 'The current selection is the shared directory boundary for runtime memory, Memory Spaces, project Documents, and background state.',
936
+ 'status.storageBrowseOnly': 'Browsing does not switch writes',
937
+ 'status.storageScopeAria': 'Select a storage domain to inspect',
938
+ 'status.storageGlobal': 'Global',
939
+ 'status.storageWorkspace': 'Workspace',
940
+ 'status.storageCustom': 'Custom',
941
+ 'status.storageCurrent': 'Current read/write',
942
+ 'status.storageWaiting': 'Reading storage-domain directories…',
943
+ 'status.storageCustomUnset': 'No custom directory is configured. This view exposes only a custom root already configured and active in DSH.',
944
+ 'status.storageWorkspaceUnavailable': 'The current session has no available workspace directory.',
945
+ 'status.storageActiveRoot': 'Current read/write root',
946
+ 'status.storageViewedRoot': 'Viewed root',
947
+ 'status.storageAvailable': 'Directory available',
948
+ 'status.storageNotCreated': 'Directory not created',
949
+ 'status.storageRuntime': 'Runtime Memory',
950
+ 'status.storageBodies': 'Memory Spaces',
951
+ 'status.storageDocuments': 'Project Documents',
952
+ 'status.storageState': 'Background State',
953
+ 'status.storageReady': 'Ready',
954
+ 'status.storageEmpty': 'Empty',
955
+ 'status.storageMissing': 'Not created',
956
+ 'status.storageInvalid': 'Repair needed',
957
+ 'status.storageItems': 'items',
958
+ 'status.storageRuntimeDetail': 'USER {user} · MEMORY {memory}',
959
+ 'status.storageBodiesDetail': '{active} active · {databases} databases',
960
+ 'status.storageDocumentsDetail': '{active} active · {archived} archived',
961
+ 'status.storageStateReady': 'Review watermarks are persisted',
962
+ 'status.storageStateVolatile': 'Review state is currently owned by the Host process',
963
+ 'status.storageFootnote': 'Current read/write root: {root}. Change the scope only in DSH Settings → Plugin Configuration → Mnemon; it applies after restart and never auto-migrates, merges, or deletes old content.',
964
+ 'status.flowTitle': 'Memory System Flow',
965
+ 'status.flowDescription': 'Maps the real execution boundaries across per-turn injection, deterministic file control, semantic workers, the CLI data plane, archive, and fork review.',
966
+ 'status.flowLive': 'Live state',
967
+ 'status.flowDegraded': 'Partially unavailable',
968
+ 'status.flowConversation': 'User / Current Task',
969
+ 'status.flowTurns': 'Current-turn input and tool trace',
970
+ 'status.flowSupervisor': 'Root Agent',
971
+ 'status.flowEntries': '{count} hot-memory entries',
972
+ 'status.flowDocuments': '{active} active · {archived} archived',
973
+ 'status.flowContext': 'Evidence / Receipts',
974
+ 'status.flowContextDetail': 'Structured results return to the task',
975
+ 'status.flowReadWrite': 'Deterministic Host path',
976
+ 'status.flowArchive': 'LLM-supervised path',
977
+ 'status.flowCurrentScope': 'Current scope: {scope}',
978
+ 'status.flowLaneContext': 'Per-turn Context',
979
+ 'status.flowLaneContextDetail': 'Runtime is injected every turn; Documents are searched on demand',
980
+ 'status.flowLaneSemantic': 'On-demand Semantic Operations',
981
+ 'status.flowLaneSemanticDetail': 'An isolated worker decides; Host services execute',
982
+ 'status.flowLaneMaintenance': 'Idle Maintenance and Archive',
983
+ 'status.flowLaneMaintenanceDetail': 'Fork review plus index-before-move archival',
984
+ 'status.flowRuntimeMeta': 'USER.md + MEMORY.md · {count} entries',
985
+ 'status.flowPromptAssembly': 'every-turn prompt assembly',
986
+ 'status.flowDocumentSearch': 'Deterministic Document Search',
987
+ 'status.flowOnDemand': 'on demand; no full-content injection',
988
+ 'status.flowRootMeta': 'routes tools; never opens SQLite directly',
989
+ 'status.flowStructuredReturn': 'structured evidence / receipt',
990
+ 'status.flowEvidenceMeta': 'returns to the Root Agent with sources',
991
+ 'status.flowSemanticRequest': 'recall · write · related',
992
+ 'status.flowSpawnWorker': 'spawn Isolated Worker',
993
+ 'status.flowSpawnMeta': 'semantic judgment · minimal tool allowlist',
994
+ 'status.flowService': 'MnemonService',
995
+ 'status.flowServiceMeta': 'validate · normalize · aggregate',
996
+ 'status.flowRunnerCli': 'Runner → Local CLI',
997
+ 'status.flowRunnerCliMeta': 'timeout / cancel / JSON process boundary',
998
+ 'status.flowHostBridge': 'Mnemon Host Bridge',
999
+ 'status.flowHostBridgeMeta': 'Service → Runner → local CLI',
1000
+ 'status.flowSpacesMeta': '{active}/{total} active · {insights} memories',
1001
+ 'status.flowDeterministicWrites': 'Ordinary Runtime and Document Changes',
1002
+ 'status.flowDeterministicWritesMeta': 'add / replace / remove · create / update',
1003
+ 'status.flowControlPlane': 'Deterministic Host Control',
1004
+ 'status.flowControlPlaneMeta': 'locks · atomic writes · revision · capacity',
1005
+ 'status.flowReviewGate': 'Activity Score and Idle Gate',
1006
+ 'status.flowReviewGateMeta': '{score}/{threshold} · idle {seconds}s',
1007
+ 'status.flowForkReview': 'fork Completed Checkpoint',
1008
+ 'status.flowForkReviewMeta': '{state} · Runtime / Document maintenance only',
1009
+ 'status.flowReviewTargets': 'Runtime / active Document',
1010
+ 'status.flowReviewTargetsMeta': 'conservative upkeep · a new turn cancels review',
1011
+ 'status.flowColdArchive': 'spawn Archive Worker',
1012
+ 'status.flowColdArchiveMeta': 'capacity maintenance / manual archive',
1013
+ 'status.flowIndexFirst': '1 · write / verify the Mnemon cold index',
1014
+ 'status.flowRevisionMove': '2 · move the original after revision fence',
1015
+ 'status.flowRevisionMoveMeta': '{archived} archived · failure or conflict keeps active content',
1016
+ 'status.flowArchivedDocuments': 'Archived Documents',
1017
+ 'status.flowRecent': 'Recent activity',
1018
+ 'status.flowRunning': 'Running',
1019
+ 'status.flowPending': 'Waiting for idle',
1020
+ 'status.flowStatic': 'Execution boundary',
1021
+ 'status.flowLegendReady': 'Available / ready',
1022
+ 'status.flowLegendRecent': 'Current or recent path',
1023
+ 'status.flowLegendBoundary': 'Dashed lines mark LLM judgment boundaries',
1024
+ 'config.aria': 'Mnemon plugin configuration',
1025
+ 'config.description': 'Choose one storage boundary for runtime memory, project Documents, Memory Spaces, and background state.',
1026
+ 'config.unsaved': 'Unsaved changes',
1027
+ 'config.restart': 'Applies after restart',
1028
+ 'config.noticeBefore': 'Configuration is written to',
1029
+ 'config.noticeAfter': ' and applies after restarting DSH. Switching scopes never migrates existing content automatically.',
1030
+ 'config.scope': 'Storage scope',
1031
+ 'config.scopeHint': 'Global is shared across workspaces; Workspace uses the DSH launch directory; Custom uses the directory below.',
1032
+ 'config.scopeAria': 'Mnemon storage scope',
1033
+ 'config.global': 'Global',
1034
+ 'config.workspace': 'Workspace',
1035
+ 'config.custom': 'Custom directory',
1036
+ 'config.customDirectory': 'Custom directory',
1037
+ 'config.customHint': 'Use an absolute path or ~/ prefix. The complete Mnemon data domain lives here.',
1038
+ 'config.customAria': 'Mnemon custom data directory',
1039
+ 'config.invalidScope': 'The storage scope is invalid.',
1040
+ 'config.customRequired': 'A data directory is required for custom storage.',
1041
+ 'config.customAbsolute': 'The custom directory must be absolute or start with ~/.',
1042
+ 'config.saveFailed': 'Save failed: {error}',
1043
+ 'config.readOnly': 'Plugin settings are read-only in this deployment.',
1044
+ 'config.discard': 'Discard changes',
1045
+ 'config.saving': 'Saving…',
1046
+ 'config.save': 'Save to settings.yaml',
1047
+ 'config.overridden': 'Overridden',
1048
+ 'config.reset': 'Restore default',
1049
+ };
1050
+ function interpolate(dictionary, key, params) {
1051
+ const template = dictionary[key];
1052
+ if (params === undefined)
1053
+ return template;
1054
+ return template.replace(/\{(\w+)\}/g, (match, name) => name in params ? String(params[name]) : match);
1055
+ }
1056
+ export function translateZh(key, params) {
1057
+ return interpolate(zh, key, params);
1058
+ }
1059
+ export function translateEn(key, params) {
1060
+ return interpolate(en, key, params);
1061
+ }
1062
+ //# sourceMappingURL=locales.js.map