@co-engram/core 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 (227) hide show
  1. package/dist/bootstrap/classify.d.ts +67 -0
  2. package/dist/bootstrap/classify.d.ts.map +1 -0
  3. package/dist/bootstrap/classify.js +119 -0
  4. package/dist/bootstrap/classify.js.map +1 -0
  5. package/dist/bootstrap/index.d.ts +89 -0
  6. package/dist/bootstrap/index.d.ts.map +1 -0
  7. package/dist/bootstrap/index.js +158 -0
  8. package/dist/bootstrap/index.js.map +1 -0
  9. package/dist/concepts/dictionary.d.ts +260 -0
  10. package/dist/concepts/dictionary.d.ts.map +1 -0
  11. package/dist/concepts/dictionary.js +253 -0
  12. package/dist/concepts/dictionary.js.map +1 -0
  13. package/dist/concepts/index.d.ts +11 -0
  14. package/dist/concepts/index.d.ts.map +1 -0
  15. package/dist/concepts/index.js +10 -0
  16. package/dist/concepts/index.js.map +1 -0
  17. package/dist/concepts/types.d.ts +65 -0
  18. package/dist/concepts/types.d.ts.map +1 -0
  19. package/dist/concepts/types.js +15 -0
  20. package/dist/concepts/types.js.map +1 -0
  21. package/dist/config/defaults.d.ts +32 -3
  22. package/dist/config/defaults.d.ts.map +1 -1
  23. package/dist/config/defaults.js +52 -2
  24. package/dist/config/defaults.js.map +1 -1
  25. package/dist/config/index.d.ts +18 -1
  26. package/dist/config/index.d.ts.map +1 -1
  27. package/dist/config/index.js +75 -3
  28. package/dist/config/index.js.map +1 -1
  29. package/dist/config/loader.d.ts +10 -0
  30. package/dist/config/loader.d.ts.map +1 -0
  31. package/dist/config/loader.js +10 -0
  32. package/dist/config/loader.js.map +1 -0
  33. package/dist/config/types.d.ts +97 -1
  34. package/dist/config/types.d.ts.map +1 -1
  35. package/dist/contradiction/auto-degrade.d.ts +11 -2
  36. package/dist/contradiction/auto-degrade.d.ts.map +1 -1
  37. package/dist/contradiction/auto-degrade.js +22 -0
  38. package/dist/contradiction/auto-degrade.js.map +1 -1
  39. package/dist/contradiction/resolver.d.ts.map +1 -1
  40. package/dist/contradiction/resolver.js +7 -1
  41. package/dist/contradiction/resolver.js.map +1 -1
  42. package/dist/dreaming/index.d.ts +1 -0
  43. package/dist/dreaming/index.d.ts.map +1 -1
  44. package/dist/dreaming/index.js +1 -0
  45. package/dist/dreaming/index.js.map +1 -1
  46. package/dist/dreaming/llm-pattern-abstraction.d.ts +31 -0
  47. package/dist/dreaming/llm-pattern-abstraction.d.ts.map +1 -0
  48. package/dist/dreaming/llm-pattern-abstraction.js +70 -0
  49. package/dist/dreaming/llm-pattern-abstraction.js.map +1 -0
  50. package/dist/dreaming/rem.d.ts.map +1 -1
  51. package/dist/dreaming/rem.js +1 -0
  52. package/dist/dreaming/rem.js.map +1 -1
  53. package/dist/dreaming/scheduler.d.ts +13 -0
  54. package/dist/dreaming/scheduler.d.ts.map +1 -1
  55. package/dist/dreaming/scheduler.js +14 -2
  56. package/dist/dreaming/scheduler.js.map +1 -1
  57. package/dist/evolution/triggered.d.ts.map +1 -1
  58. package/dist/evolution/triggered.js +1 -0
  59. package/dist/evolution/triggered.js.map +1 -1
  60. package/dist/generative/hypothesis.d.ts.map +1 -1
  61. package/dist/generative/hypothesis.js +1 -0
  62. package/dist/generative/hypothesis.js.map +1 -1
  63. package/dist/i18n/en.d.ts.map +1 -1
  64. package/dist/i18n/en.js +1262 -32
  65. package/dist/i18n/en.js.map +1 -1
  66. package/dist/i18n/index.d.ts +34 -1
  67. package/dist/i18n/index.d.ts.map +1 -1
  68. package/dist/i18n/index.js +36 -7
  69. package/dist/i18n/index.js.map +1 -1
  70. package/dist/i18n/zh.d.ts +698 -32
  71. package/dist/i18n/zh.d.ts.map +1 -1
  72. package/dist/i18n/zh.js +1267 -33
  73. package/dist/i18n/zh.js.map +1 -1
  74. package/dist/index/graph-builder.js +3 -3
  75. package/dist/index/graph-builder.js.map +1 -1
  76. package/dist/index.d.ts +3 -0
  77. package/dist/index.d.ts.map +1 -1
  78. package/dist/index.js +3 -0
  79. package/dist/index.js.map +1 -1
  80. package/dist/learning/loop.d.ts +9 -0
  81. package/dist/learning/loop.d.ts.map +1 -1
  82. package/dist/learning/loop.js +42 -1
  83. package/dist/learning/loop.js.map +1 -1
  84. package/dist/maintenance/types.d.ts +11 -0
  85. package/dist/maintenance/types.d.ts.map +1 -1
  86. package/dist/maintenance/types.js.map +1 -1
  87. package/dist/merge/synapse-merger.js +6 -0
  88. package/dist/merge/synapse-merger.js.map +1 -1
  89. package/dist/merge-driver.cjs +64 -5
  90. package/dist/observability/audit-log.d.ts +7 -1
  91. package/dist/observability/audit-log.d.ts.map +1 -1
  92. package/dist/observability/audit-log.js.map +1 -1
  93. package/dist/observability/necessity-evaluator.d.ts +29 -0
  94. package/dist/observability/necessity-evaluator.d.ts.map +1 -1
  95. package/dist/observability/necessity-evaluator.js +240 -13
  96. package/dist/observability/necessity-evaluator.js.map +1 -1
  97. package/dist/observability/proposal-engine.d.ts.map +1 -1
  98. package/dist/observability/proposal-engine.js +12 -0
  99. package/dist/observability/proposal-engine.js.map +1 -1
  100. package/dist/observability/runtime-description-check.d.ts +55 -0
  101. package/dist/observability/runtime-description-check.d.ts.map +1 -0
  102. package/dist/observability/runtime-description-check.js +63 -0
  103. package/dist/observability/runtime-description-check.js.map +1 -0
  104. package/dist/prompt-signals/cache.d.ts +73 -0
  105. package/dist/prompt-signals/cache.d.ts.map +1 -1
  106. package/dist/prompt-signals/cache.js +102 -0
  107. package/dist/prompt-signals/cache.js.map +1 -1
  108. package/dist/prompt-signals/event-bus.d.ts +82 -0
  109. package/dist/prompt-signals/event-bus.d.ts.map +1 -0
  110. package/dist/prompt-signals/event-bus.js +105 -0
  111. package/dist/prompt-signals/event-bus.js.map +1 -0
  112. package/dist/prompt-signals/index.d.ts +2 -1
  113. package/dist/prompt-signals/index.d.ts.map +1 -1
  114. package/dist/prompt-signals/index.js +2 -1
  115. package/dist/prompt-signals/index.js.map +1 -1
  116. package/dist/reinforcement/ltp.d.ts +15 -1
  117. package/dist/reinforcement/ltp.d.ts.map +1 -1
  118. package/dist/reinforcement/ltp.js +24 -5
  119. package/dist/reinforcement/ltp.js.map +1 -1
  120. package/dist/reinforcement/related.d.ts +31 -2
  121. package/dist/reinforcement/related.d.ts.map +1 -1
  122. package/dist/reinforcement/related.js +39 -3
  123. package/dist/reinforcement/related.js.map +1 -1
  124. package/dist/retrieval/filter.d.ts.map +1 -1
  125. package/dist/retrieval/filter.js +7 -0
  126. package/dist/retrieval/filter.js.map +1 -1
  127. package/dist/retrieval/fts.d.ts +6 -5
  128. package/dist/retrieval/fts.d.ts.map +1 -1
  129. package/dist/retrieval/fts.js +74 -22
  130. package/dist/retrieval/fts.js.map +1 -1
  131. package/dist/status/index.d.ts +7 -0
  132. package/dist/status/index.d.ts.map +1 -0
  133. package/dist/status/index.js +7 -0
  134. package/dist/status/index.js.map +1 -0
  135. package/dist/status/status.d.ts +132 -0
  136. package/dist/status/status.d.ts.map +1 -0
  137. package/dist/status/status.js +437 -0
  138. package/dist/status/status.js.map +1 -0
  139. package/dist/storage/engram-store.d.ts.map +1 -1
  140. package/dist/storage/engram-store.js +17 -2
  141. package/dist/storage/engram-store.js.map +1 -1
  142. package/dist/storage/git.d.ts +168 -0
  143. package/dist/storage/git.d.ts.map +1 -1
  144. package/dist/storage/git.js +616 -33
  145. package/dist/storage/git.js.map +1 -1
  146. package/dist/storage/index.d.ts +1 -0
  147. package/dist/storage/index.d.ts.map +1 -1
  148. package/dist/storage/index.js +1 -0
  149. package/dist/storage/index.js.map +1 -1
  150. package/dist/storage/infra-doctor.d.ts +42 -0
  151. package/dist/storage/infra-doctor.d.ts.map +1 -0
  152. package/dist/storage/infra-doctor.js +92 -0
  153. package/dist/storage/infra-doctor.js.map +1 -0
  154. package/dist/storage/obsidian-links.d.ts +73 -0
  155. package/dist/storage/obsidian-links.d.ts.map +1 -0
  156. package/dist/storage/obsidian-links.js +177 -0
  157. package/dist/storage/obsidian-links.js.map +1 -0
  158. package/dist/storage/path.d.ts +24 -0
  159. package/dist/storage/path.d.ts.map +1 -1
  160. package/dist/storage/path.js +53 -0
  161. package/dist/storage/path.js.map +1 -1
  162. package/dist/storage/repository.d.ts +37 -1
  163. package/dist/storage/repository.d.ts.map +1 -1
  164. package/dist/storage/repository.js +235 -17
  165. package/dist/storage/repository.js.map +1 -1
  166. package/dist/storage/synapse-store.d.ts +7 -1
  167. package/dist/storage/synapse-store.d.ts.map +1 -1
  168. package/dist/storage/synapse-store.js +8 -0
  169. package/dist/storage/synapse-store.js.map +1 -1
  170. package/dist/tools/audit-query-tool.d.ts +53 -0
  171. package/dist/tools/audit-query-tool.d.ts.map +1 -0
  172. package/dist/tools/audit-query-tool.js +123 -0
  173. package/dist/tools/audit-query-tool.js.map +1 -0
  174. package/dist/tools/doctor-tools.d.ts +5 -0
  175. package/dist/tools/doctor-tools.d.ts.map +1 -1
  176. package/dist/tools/doctor-tools.js +11 -3
  177. package/dist/tools/doctor-tools.js.map +1 -1
  178. package/dist/tools/engram-tools.d.ts +13 -0
  179. package/dist/tools/engram-tools.d.ts.map +1 -1
  180. package/dist/tools/engram-tools.js +72 -8
  181. package/dist/tools/engram-tools.js.map +1 -1
  182. package/dist/tools/index.d.ts +3 -0
  183. package/dist/tools/index.d.ts.map +1 -1
  184. package/dist/tools/index.js +3 -0
  185. package/dist/tools/index.js.map +1 -1
  186. package/dist/tools/llm-descriptions.d.ts +28 -28
  187. package/dist/tools/llm-descriptions.d.ts.map +1 -1
  188. package/dist/tools/llm-descriptions.js +56 -489
  189. package/dist/tools/llm-descriptions.js.map +1 -1
  190. package/dist/tools/normalization.d.ts +43 -0
  191. package/dist/tools/normalization.d.ts.map +1 -0
  192. package/dist/tools/normalization.js +68 -0
  193. package/dist/tools/normalization.js.map +1 -0
  194. package/dist/tools/registry.d.ts.map +1 -1
  195. package/dist/tools/registry.js +6 -0
  196. package/dist/tools/registry.js.map +1 -1
  197. package/dist/tools/schemas.d.ts +67 -11
  198. package/dist/tools/schemas.d.ts.map +1 -1
  199. package/dist/tools/schemas.js +61 -6
  200. package/dist/tools/schemas.js.map +1 -1
  201. package/dist/tools/skill-tools.js +1 -1
  202. package/dist/tools/skill-tools.js.map +1 -1
  203. package/dist/tools/synapse-tools.d.ts.map +1 -1
  204. package/dist/tools/synapse-tools.js +1 -0
  205. package/dist/tools/synapse-tools.js.map +1 -1
  206. package/dist/tools/sync-tools.d.ts +102 -0
  207. package/dist/tools/sync-tools.d.ts.map +1 -0
  208. package/dist/tools/sync-tools.js +309 -0
  209. package/dist/tools/sync-tools.js.map +1 -0
  210. package/dist/tools/synthesize-tools.d.ts +79 -0
  211. package/dist/tools/synthesize-tools.d.ts.map +1 -0
  212. package/dist/tools/synthesize-tools.js +297 -0
  213. package/dist/tools/synthesize-tools.js.map +1 -0
  214. package/dist/tools/tool-profile.d.ts +68 -0
  215. package/dist/tools/tool-profile.d.ts.map +1 -0
  216. package/dist/tools/tool-profile.js +174 -0
  217. package/dist/tools/tool-profile.js.map +1 -0
  218. package/dist/tools/tool.d.ts +24 -0
  219. package/dist/tools/tool.d.ts.map +1 -1
  220. package/dist/tools/tool.js.map +1 -1
  221. package/dist/types/disclosure.d.ts +7 -0
  222. package/dist/types/disclosure.d.ts.map +1 -1
  223. package/dist/types/repository-types.d.ts +17 -1
  224. package/dist/types/repository-types.d.ts.map +1 -1
  225. package/dist/types/synapse.d.ts +19 -1
  226. package/dist/types/synapse.d.ts.map +1 -1
  227. package/package.json +9 -9
@@ -0,0 +1,437 @@
1
+ /**
2
+ * 健康可视化状态(Finding 128 / 254 等 P0 的用户感知层)
3
+ *
4
+ * `co-engram status` 命令与 viewer Health tab 共用本模块。
5
+ * 设计目标:把"静默失败"变成"一眼可见"——挑剔用户首启就能看到问题在哪。
6
+ *
7
+ * @module @co-engram/core/status
8
+ */
9
+ import { existsSync, statSync, readdirSync, readFileSync } from "node:fs";
10
+ import { join } from "node:path";
11
+ import { execSync } from "node:child_process";
12
+ import { EngramRepository } from "../storage/repository.js";
13
+ /**
14
+ * 计算仓库健康状态
15
+ *
16
+ * @param dataRoot team-memory 根目录
17
+ * @returns StatusSnapshot;即使 dataRoot 不存在也返回(便于 UI 显示诊断)
18
+ */
19
+ export function computeStatus(dataRoot) {
20
+ const generatedAt = new Date().toISOString();
21
+ const dataRootExists = existsSync(dataRoot);
22
+ const configPath = join(dataRoot, ".co-engram", "config.json");
23
+ const isEngramWarehouse = existsSync(configPath);
24
+ // 配置
25
+ let config;
26
+ if (isEngramWarehouse) {
27
+ try {
28
+ const raw = readFileSync(configPath, "utf8");
29
+ const parsed = JSON.parse(raw);
30
+ if (parsed && typeof parsed === "object" && parsed.version === 1) {
31
+ config = parsed;
32
+ }
33
+ }
34
+ catch {
35
+ // 配置读取失败,下面 check 会标记
36
+ }
37
+ }
38
+ // engram 统计(catalog 层,快;status 分布需要读 meta,见下方可选展开)
39
+ const stats = { total: 0, byKind: {}, byStatus: {}, archived: 0, forgotten: 0 };
40
+ if (dataRootExists && isEngramWarehouse) {
41
+ try {
42
+ const repo = new EngramRepository({ rootPath: dataRoot });
43
+ const all = repo.listEngrams();
44
+ stats.total = all.length;
45
+ for (const e of all) {
46
+ const kind = e.kind ?? "unknown";
47
+ stats.byKind[kind] = (stats.byKind[kind] ?? 0) + 1;
48
+ }
49
+ // status 分布需要读 meta(慢路径,但对诊断重要)
50
+ for (const e of all) {
51
+ try {
52
+ const full = repo.readEngram(e.id);
53
+ const status = full.status ?? "active";
54
+ stats.byStatus[status] = (stats.byStatus[status] ?? 0) + 1;
55
+ if (status === "archived")
56
+ stats.archived += 1;
57
+ if (status === "forgotten")
58
+ stats.forgotten += 1;
59
+ }
60
+ catch {
61
+ // 单条 engram meta 读失败,跳过(下面 check 会标记)
62
+ }
63
+ }
64
+ }
65
+ catch {
66
+ // 仓库不可读,下面 check 会标记
67
+ }
68
+ }
69
+ // 索引文件
70
+ const indexBase = join(dataRoot, ".co-engram");
71
+ const indexes = {
72
+ engramIndex: statFile(join(indexBase, "engram-index.json")),
73
+ digestJsonl: statFile(join(indexBase, "digest.jsonl")),
74
+ graphJson: statFile(join(indexBase, "graph.json")),
75
+ };
76
+ // 候选提案
77
+ let proposals = { pending: 0, total: 0 };
78
+ if (dataRootExists && isEngramWarehouse) {
79
+ try {
80
+ const proposalsDir = join(indexBase, "proposals");
81
+ if (existsSync(proposalsDir)) {
82
+ const files = readdirSync(proposalsDir).filter((f) => f.endsWith(".json"));
83
+ proposals.total = files.length;
84
+ for (const f of files) {
85
+ try {
86
+ const raw = readFileSync(join(proposalsDir, f), "utf8");
87
+ const parsed = JSON.parse(raw);
88
+ if (parsed.status === "pending")
89
+ proposals.pending += 1;
90
+ }
91
+ catch {
92
+ // 单个提案文件损坏,跳过
93
+ }
94
+ }
95
+ }
96
+ }
97
+ catch {
98
+ // 提案目录不可读
99
+ }
100
+ }
101
+ // Git 状态
102
+ const git = checkGit(dataRoot);
103
+ // merge driver
104
+ const mergeDriver = checkMergeDriver(dataRoot);
105
+ // 健康检查项
106
+ const checks = [];
107
+ if (!dataRootExists) {
108
+ checks.push({
109
+ id: "data_root",
110
+ label: "Data Root",
111
+ status: "error",
112
+ message: `目录不存在: ${dataRoot}`,
113
+ whyI18nKey: "viewer.health.why.data_root_missing",
114
+ fix: {
115
+ descriptionI18nKey: "viewer.health.fix.data_root_missing.description",
116
+ command: `mkdir -p ${dataRoot} && co-engram init --path ${dataRoot}`,
117
+ },
118
+ });
119
+ }
120
+ else if (!isEngramWarehouse) {
121
+ checks.push({
122
+ id: "data_root",
123
+ label: "Data Root",
124
+ status: "error",
125
+ message: `不是 co-engram 仓库(缺 .co-engram/config.json)`,
126
+ detail: `运行 'co-engram init --path ${dataRoot}' 初始化,或换一个已存在的仓库路径。`,
127
+ whyI18nKey: "viewer.health.why.data_root_not_warehouse",
128
+ fix: {
129
+ descriptionI18nKey: "viewer.health.fix.data_root_not_warehouse.description",
130
+ command: `co-engram init --path ${dataRoot}`,
131
+ },
132
+ });
133
+ }
134
+ else {
135
+ checks.push({
136
+ id: "data_root",
137
+ label: "Data Root",
138
+ status: "ok",
139
+ message: dataRoot,
140
+ });
141
+ }
142
+ // 配置
143
+ if (isEngramWarehouse) {
144
+ if (!config) {
145
+ checks.push({
146
+ id: "config",
147
+ label: "Config",
148
+ status: "error",
149
+ message: ".co-engram/config.json 读取失败",
150
+ whyI18nKey: "viewer.health.why.config_unreadable",
151
+ fix: {
152
+ descriptionI18nKey: "viewer.health.fix.config_unreadable.description",
153
+ command: `co-engram init --path ${dataRoot}`,
154
+ },
155
+ });
156
+ }
157
+ else {
158
+ const lang = config["language"];
159
+ const createdBy = config["defaultCreatedBy"];
160
+ const ok = !!(lang && createdBy);
161
+ checks.push({
162
+ id: "config",
163
+ label: "Config",
164
+ status: ok ? "ok" : "warn",
165
+ message: `language=${String(lang ?? "(missing)")}, defaultCreatedBy=${String(createdBy ?? "(missing)")}`,
166
+ ...(ok
167
+ ? {}
168
+ : {
169
+ whyI18nKey: "viewer.health.why.config_missing_fields",
170
+ fix: {
171
+ descriptionI18nKey: "viewer.health.fix.config_missing_fields.description",
172
+ command: `co-engram config set language zh && co-engram config set defaultCreatedBy <你的名字>`,
173
+ },
174
+ }),
175
+ });
176
+ }
177
+ }
178
+ // engram 数
179
+ if (dataRootExists && isEngramWarehouse) {
180
+ checks.push({
181
+ id: "engrams",
182
+ label: "Engrams",
183
+ status: stats.total === 0 ? "warn" : "ok",
184
+ message: `${stats.total} 条记忆${stats.archived ? `, ${stats.archived} archived` : ""}${stats.forgotten ? `, ${stats.forgotten} forgotten` : ""}`,
185
+ detail: stats.total > 0 ? `by kind: ${formatDist(stats.byKind)}\nby status: ${formatDist(stats.byStatus)}` : undefined,
186
+ });
187
+ }
188
+ // 索引
189
+ if (dataRootExists && isEngramWarehouse) {
190
+ const idxChecks = [
191
+ { name: "engramIndex", file: indexes.engramIndex, label: "engram-index.json" },
192
+ { name: "digestJsonl", file: indexes.digestJsonl, label: "digest.jsonl" },
193
+ { name: "graphJson", file: indexes.graphJson, label: "graph.json" },
194
+ ];
195
+ for (const { name, file, label } of idxChecks) {
196
+ if (!file.exists) {
197
+ checks.push({
198
+ id: `index_${name}`,
199
+ label: `Index: ${label}`,
200
+ status: "warn",
201
+ message: "缺失(将在下次访问时重建)",
202
+ whyI18nKey: "viewer.health.why.index_missing",
203
+ fix: {
204
+ descriptionI18nKey: "viewer.health.fix.index_missing.description",
205
+ tool: "engram_doctor",
206
+ argsHint: "{ incremental: false }",
207
+ },
208
+ });
209
+ }
210
+ else {
211
+ checks.push({
212
+ id: `index_${name}`,
213
+ label: `Index: ${label}`,
214
+ status: "ok",
215
+ message: `${label} 存在 (${formatBytes(file.sizeBytes ?? 0)})`,
216
+ });
217
+ }
218
+ }
219
+ }
220
+ // 候选提案
221
+ if (dataRootExists && isEngramWarehouse) {
222
+ const overThreshold = proposals.pending > 5;
223
+ checks.push({
224
+ id: "proposals",
225
+ label: "Proposals",
226
+ status: overThreshold ? "warn" : "info",
227
+ message: `${proposals.pending} 个待处理 / ${proposals.total} 总计`,
228
+ detail: proposals.pending > 0 ? "调 engram_list_proposals 审核,或忽略。" : undefined,
229
+ ...(overThreshold
230
+ ? {
231
+ whyI18nKey: "viewer.health.why.proposals_pending_high",
232
+ fix: {
233
+ descriptionI18nKey: "viewer.health.fix.proposals_pending_high.description",
234
+ tool: "engram_list_proposals",
235
+ },
236
+ }
237
+ : {}),
238
+ });
239
+ }
240
+ // Git
241
+ if (dataRootExists) {
242
+ if (!git.isRepo) {
243
+ checks.push({
244
+ id: "git",
245
+ label: "Git",
246
+ status: "warn",
247
+ message: "不是 git 仓库(无版本历史,丢失无法恢复)",
248
+ detail: "运行 'cd <dataRoot> && git init' 初始化。",
249
+ whyI18nKey: "viewer.health.why.git_not_repo",
250
+ fix: {
251
+ descriptionI18nKey: "viewer.health.fix.git_not_repo.description",
252
+ command: `cd ${dataRoot} && git init`,
253
+ },
254
+ });
255
+ }
256
+ else if (git.dirty) {
257
+ const overThreshold = git.uncommittedCount > 10;
258
+ checks.push({
259
+ id: "git",
260
+ label: "Git",
261
+ status: overThreshold ? "warn" : "info",
262
+ message: `${git.uncommittedCount} 个未提交变更`,
263
+ detail: "co-engram 不会自动 commit;手动 commit 或配置 hook。",
264
+ ...(overThreshold
265
+ ? {
266
+ whyI18nKey: "viewer.health.why.git_dirty_high",
267
+ fix: {
268
+ descriptionI18nKey: "viewer.health.fix.git_dirty_high.description",
269
+ command: `cd ${dataRoot} && git add -A && git commit -m "chore(memory): sync engram updates"`,
270
+ // tool="commit" 让 viewer 渲染「立即提交」按钮,POST /api/commit 一键落盘
271
+ tool: "commit",
272
+ },
273
+ }
274
+ : {}),
275
+ });
276
+ }
277
+ else {
278
+ checks.push({
279
+ id: "git",
280
+ label: "Git",
281
+ status: "ok",
282
+ message: "干净",
283
+ });
284
+ }
285
+ }
286
+ // merge driver
287
+ if (dataRootExists && isEngramWarehouse) {
288
+ if (!mergeDriver.configured) {
289
+ checks.push({
290
+ id: "merge_driver",
291
+ label: "Merge Driver",
292
+ status: "warn",
293
+ message: "未配置 git merge driver(多人协作时 engram 合并会冲突)",
294
+ detail: mergeDriver.detail,
295
+ whyI18nKey: "viewer.health.why.merge_driver_missing",
296
+ fix: {
297
+ descriptionI18nKey: "viewer.health.fix.merge_driver_missing.description",
298
+ command: "co-engram git enable",
299
+ tool: "engram_sync",
300
+ },
301
+ });
302
+ }
303
+ else {
304
+ checks.push({
305
+ id: "merge_driver",
306
+ label: "Merge Driver",
307
+ status: "ok",
308
+ message: "已配置",
309
+ });
310
+ }
311
+ }
312
+ // 总体
313
+ const hasError = checks.some((c) => c.status === "error");
314
+ const hasWarn = checks.some((c) => c.status === "warn");
315
+ const overall = hasError
316
+ ? "error"
317
+ : hasWarn
318
+ ? "warn"
319
+ : "ok";
320
+ return {
321
+ generatedAt,
322
+ dataRoot,
323
+ dataRootExists,
324
+ isEngramWarehouse,
325
+ config,
326
+ stats,
327
+ indexes,
328
+ proposals,
329
+ git,
330
+ mergeDriver,
331
+ checks,
332
+ overall,
333
+ };
334
+ }
335
+ /**
336
+ * 把 StatusSnapshot 格式化为人类可读文本
337
+ */
338
+ export function formatStatusAsText(s) {
339
+ const lines = [];
340
+ lines.push(`[co-engram status] ${s.dataRoot}`);
341
+ lines.push(` generated: ${s.generatedAt}`);
342
+ lines.push(` overall: ${badge(s.overall)}`);
343
+ lines.push("");
344
+ lines.push("Checks:");
345
+ for (const c of s.checks) {
346
+ lines.push(` ${badge(c.status)} ${c.label}: ${c.message}`);
347
+ if (c.detail) {
348
+ for (const detailLine of c.detail.split("\n")) {
349
+ lines.push(` ${detailLine}`);
350
+ }
351
+ }
352
+ }
353
+ return lines.join("\n") + "\n";
354
+ }
355
+ function badge(status) {
356
+ switch (status) {
357
+ case "ok":
358
+ return "[OK]";
359
+ case "warn":
360
+ return "[WARN]";
361
+ case "error":
362
+ return "[ERROR]";
363
+ case "info":
364
+ return "[INFO]";
365
+ default:
366
+ return "[?]";
367
+ }
368
+ }
369
+ function statFile(path) {
370
+ if (!existsSync(path))
371
+ return { exists: false };
372
+ try {
373
+ const st = statSync(path);
374
+ return { exists: true, mtime: st.mtime.toISOString(), sizeBytes: st.size };
375
+ }
376
+ catch {
377
+ return { exists: false };
378
+ }
379
+ }
380
+ function checkGit(dataRoot) {
381
+ if (!existsSync(join(dataRoot, ".git"))) {
382
+ return { isRepo: false, dirty: false, uncommittedCount: 0 };
383
+ }
384
+ try {
385
+ const out = execSync("git status --porcelain", {
386
+ cwd: dataRoot,
387
+ encoding: "utf8",
388
+ stdio: ["pipe", "pipe", "ignore"],
389
+ });
390
+ const lines = out.split("\n").filter((l) => l.trim().length > 0);
391
+ return { isRepo: true, dirty: lines.length > 0, uncommittedCount: lines.length };
392
+ }
393
+ catch {
394
+ return { isRepo: true, dirty: false, uncommittedCount: 0 };
395
+ }
396
+ }
397
+ function checkMergeDriver(dataRoot) {
398
+ if (!existsSync(join(dataRoot, ".git"))) {
399
+ return { configured: false, detail: "不是 git 仓库,无需 merge driver" };
400
+ }
401
+ try {
402
+ const configOut = execSync("git config --get-regexp 'merge\\.co-engram|merge\\.engram'", {
403
+ cwd: dataRoot,
404
+ encoding: "utf8",
405
+ stdio: ["pipe", "pipe", "ignore"],
406
+ });
407
+ const attrOut = execSync("git check-attr merge - engrams/README.md 2>/dev/null || true", {
408
+ cwd: dataRoot,
409
+ encoding: "utf8",
410
+ stdio: ["pipe", "pipe", "ignore"],
411
+ });
412
+ const configured = configOut.trim().length > 0 && attrOut.includes("merge: co-engram");
413
+ return {
414
+ configured,
415
+ detail: configured
416
+ ? undefined
417
+ : "运行 'co-engram init' 或 'openclaw plugin co-engram auto-onboard' 自动配置。",
418
+ };
419
+ }
420
+ catch {
421
+ return { configured: false };
422
+ }
423
+ }
424
+ function formatDist(d) {
425
+ return Object.entries(d)
426
+ .sort((a, b) => b[1] - a[1])
427
+ .map(([k, v]) => `${k}=${v}`)
428
+ .join(", ");
429
+ }
430
+ function formatBytes(n) {
431
+ if (n < 1024)
432
+ return `${n}B`;
433
+ if (n < 1024 * 1024)
434
+ return `${(n / 1024).toFixed(1)}KB`;
435
+ return `${(n / (1024 * 1024)).toFixed(1)}MB`;
436
+ }
437
+ //# sourceMappingURL=status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/status/status.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"engram-store.d.ts","sourceRoot":"","sources":["../../src/storage/engram-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engram-store.d.ts","sourceRoot":"","sources":["../../src/storage/engram-store.ts"],"names":[],"mappings":"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"}
@@ -66,15 +66,30 @@ const BOTTOM_META_MARKER_RE = /<!--[ \t]*co-engram-meta:?[a-z]*[ \t]*-->\s*\n/;
66
66
  */
67
67
  export function serializeEngramFile(file, language = DEFAULT_LANGUAGE) {
68
68
  const body = file.content.replace(/^\n+/, "").replace(/\n+$/, "");
69
+ // Obsidian 派生段 wikilink 用文件名作 target(见 obsidian-links.ts),
70
+ // 不依赖 frontmatter aliases。中文模式 frontmatter 在文件底部,
71
+ // Obsidian 不识别底部 frontmatter,aliases 注入也无意义。
72
+ // 历史 engram 中残留的 aliases 字段会被显式剥离,doctor 重写后清干净。
73
+ //
74
+ // Task 5.4:剥离前 warn 一次,让用户知道手动加的 aliases 字段会被丢弃
75
+ // (R15 实证:静默剥离让用户困惑"我加的字段去哪了")。
76
+ if ("aliases" in file.frontmatter &&
77
+ Array.isArray(file.frontmatter.aliases) &&
78
+ file.frontmatter.aliases.length > 0) {
79
+ const id = file.frontmatter.id ?? "<unknown>";
80
+ console.warn(`[co-engram] engram ${id}: aliases field stripped (legacy field, no longer used; Obsidian wikilinks use filename as target).`);
81
+ }
82
+ const { aliases: _drop, ...frontmatter } = file.frontmatter;
83
+ void _drop;
69
84
  if (language === "zh") {
70
- const localized = localizeKeys(file.frontmatter, "zh", ENGRAM_FIELD_MAP, {
85
+ const localized = localizeKeys(frontmatter, "zh", ENGRAM_FIELD_MAP, {
71
86
  attachLangMarker: true,
72
87
  });
73
88
  const yamlStr = stringify(localized, { lineWidth: 0 });
74
89
  const yamlTrimmed = yamlStr.endsWith("\n") ? yamlStr : yamlStr + "\n";
75
90
  return `${body}\n\n<!-- co-engram-meta:zh -->\n${FRONTMATTER_DELIMITER}\n${yamlTrimmed}${FRONTMATTER_DELIMITER}\n`;
76
91
  }
77
- const yamlStr = stringify(file.frontmatter, { lineWidth: 0 });
92
+ const yamlStr = stringify(frontmatter, { lineWidth: 0 });
78
93
  const yamlTrimmed = yamlStr.endsWith("\n") ? yamlStr : yamlStr + "\n";
79
94
  return `${FRONTMATTER_DELIMITER}\n${yamlTrimmed}${FRONTMATTER_DELIMITER}\n\n${body}\n`;
80
95
  }
@@ -1 +1 @@
1
- {"version":3,"file":"engram-store.js","sourceRoot":"","sources":["../../src/storage/engram-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH,OAAO,EACL,YAAY,EACZ,aAAa,EACb,SAAS,EACT,UAAU,EACV,UAAU,EACV,UAAU,GACX,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAWxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EACL,gBAAgB,EAChB,wBAAwB,EACxB,cAAc,EACd,iBAAiB,EACjB,YAAY,GACb,MAAM,wBAAwB,CAAC;AAqDhC,MAAM,qBAAqB,GAAG,KAAK,CAAC;AAEpC;;;;;;GAMG;AACH,MAAM,qBAAqB,GAAG,gDAAgD,CAAC;AAE/E;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CACjC,IAAgB,EAChB,WAAqB,gBAAgB;IAErC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAElE,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,MAAM,SAAS,GAAG,YAAY,CAC5B,IAAI,CAAC,WAAsC,EAC3C,IAAI,EACJ,gBAAgB,EAChB;YACE,gBAAgB,EAAE,IAAI;SACvB,CACF,CAAC;QACF,MAAM,OAAO,GAAG,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;QACvD,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;QACtE,OAAO,GAAG,IAAI,mCAAmC,qBAAqB,KAAK,WAAW,GAAG,qBAAqB,IAAI,CAAC;IACrH,CAAC;IAED,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;IAC9D,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;IACtE,OAAO,GAAG,qBAAqB,KAAK,WAAW,GAAG,qBAAqB,OAAO,IAAI,IAAI,CAAC;AACzF,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,gBAAgB;IAChB,IAAI,QAAgB,CAAC;IACrB,IAAI,IAAY,CAAC;IAEjB,IAAI,GAAG,CAAC,UAAU,CAAC,qBAAqB,CAAC,EAAE,CAAC;QAC1C,oCAAoC;QACpC,MAAM,WAAW,GAAG,KAAK,qBAAqB,IAAI,CAAC;QACnD,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAC1E,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAC;QACJ,CAAC;QACD,MAAM,SAAS,GAAG,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC;QACnD,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;QAC3D,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACzD,CAAC;SAAM,CAAC;QACN,iDAAiD;QACjD,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACrD,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACpD,MAAM,IAAI,KAAK,CACb,uGAAuG,CACxG,CAAC;QACJ,CAAC;QACD,MAAM,eAAe,GAAG,WAAW,CAAC,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAClE,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CACb,+DAA+D,CAChE,CAAC;QACJ,CAAC;QACD,MAAM,WAAW,GAAG,KAAK,qBAAqB,IAAI,CAAC;QACnD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAC3E,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CACb,mEAAmE,CACpE,CAAC;QACJ,CAAC;QACD,MAAM,SAAS,GAAG,qBAAqB,CAAC,MAAM,CAAC;QAC/C,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC/B,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,MAAM,GAAG,MAAiC,CAAC;IACjD,MAAM,EAAE,UAAU,EAAE,GAAG,cAAc,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;IAExE,wCAAwC;IACxC,qDAAqD;IACrD,sBAAsB;IACtB,KAAK,iBAAiB,CAAC,CAAC,yCAAyC;IAEjE,MAAM,WAAW,GAAG,UAA+B,CAAC;IACpD,IAAI,OAAO,WAAW,CAAC,EAAE,KAAK,QAAQ,IAAI,WAAW,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,OAAO,WAAW,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IAED,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACxC,CAAC;AAED,mBAAmB;AACnB,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC3C,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC;AAED,4CAA4C;AAC5C,MAAM,UAAU,eAAe,CAC7B,QAAgB,EAChB,IAAgB,EAChB,WAAqB,gBAAgB;IAErC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,aAAa,CAAC,QAAQ,EAAE,mBAAmB,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;AACvE,CAAC;AAED,mBAAmB;AACnB,MAAM,UAAU,gBAAgB,CAAC,QAAgB;IAC/C,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,UAAU,CAAC,QAAQ,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,8BAA8B;AAC9B,MAAM,UAAU,gBAAgB,CAAC,OAAe,EAAE,OAAe;IAC/D,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,sBAAsB;IACtB,IAAI,GAAG,CAAC,UAAU,CAAC,qBAAqB,CAAC,EAAE,CAAC;QAC1C,IAAI,CAAC;YACH,eAAe,CAAC,GAAG,CAAC,CAAC;YACrB,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,4BAA4B;IAC5B,IAAI,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACpC,IAAI,CAAC;YACH,eAAe,CAAC,GAAG,CAAC,CAAC;YACrB,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,wBAAwB,CAAC,GAAW;IAClD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IACzC,kBAAkB;IAClB,IACE,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC;QAC/B,CAAC,GAAG,CAAC,UAAU,CAAC,qBAAqB,CAAC,EACtC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"engram-store.js","sourceRoot":"","sources":["../../src/storage/engram-store.ts"],"names":[],"mappings":"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"}