engram-mcp-server 1.2.8 → 1.4.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 (288) hide show
  1. package/README.md +131 -24
  2. package/dist/constants.d.ts +12 -1
  3. package/dist/constants.d.ts.map +1 -1
  4. package/dist/constants.js +19 -1
  5. package/dist/constants.js.map +1 -1
  6. package/dist/database.d.ts +9 -0
  7. package/dist/database.d.ts.map +1 -1
  8. package/dist/database.js +16 -0
  9. package/dist/database.js.map +1 -1
  10. package/dist/index.js +16 -1
  11. package/dist/index.js.map +1 -1
  12. package/dist/installer/config-writer.d.ts +11 -2
  13. package/dist/installer/config-writer.d.ts.map +1 -1
  14. package/dist/installer/config-writer.js +28 -3
  15. package/dist/installer/config-writer.js.map +1 -1
  16. package/dist/installer/ide-detector.d.ts.map +1 -1
  17. package/dist/installer/ide-detector.js +10 -6
  18. package/dist/installer/ide-detector.js.map +1 -1
  19. package/dist/installer/index.d.ts.map +1 -1
  20. package/dist/installer/index.js +156 -23
  21. package/dist/installer/index.js.map +1 -1
  22. package/dist/repositories/changes.repo.d.ts.map +1 -1
  23. package/dist/repositories/changes.repo.js +5 -3
  24. package/dist/repositories/changes.repo.js.map +1 -1
  25. package/dist/repositories/config.repo.d.ts +5 -0
  26. package/dist/repositories/config.repo.d.ts.map +1 -1
  27. package/dist/repositories/config.repo.js +8 -0
  28. package/dist/repositories/config.repo.js.map +1 -1
  29. package/dist/repositories/decisions.repo.d.ts +8 -0
  30. package/dist/repositories/decisions.repo.d.ts.map +1 -1
  31. package/dist/repositories/decisions.repo.js +23 -0
  32. package/dist/repositories/decisions.repo.js.map +1 -1
  33. package/dist/repositories/file-notes.repo.d.ts +9 -0
  34. package/dist/repositories/file-notes.repo.d.ts.map +1 -1
  35. package/dist/repositories/file-notes.repo.js +22 -4
  36. package/dist/repositories/file-notes.repo.js.map +1 -1
  37. package/dist/response.d.ts +1 -0
  38. package/dist/response.d.ts.map +1 -1
  39. package/dist/response.js.map +1 -1
  40. package/dist/services/index.d.ts +2 -0
  41. package/dist/services/index.d.ts.map +1 -1
  42. package/dist/services/index.js +1 -0
  43. package/dist/services/index.js.map +1 -1
  44. package/dist/services/update.service.d.ts +29 -0
  45. package/dist/services/update.service.d.ts.map +1 -0
  46. package/dist/services/update.service.js +166 -0
  47. package/dist/services/update.service.js.map +1 -0
  48. package/dist/tools/backup.d.ts.map +1 -1
  49. package/dist/tools/backup.js +20 -45
  50. package/dist/tools/backup.js.map +1 -1
  51. package/dist/tools/changes.d.ts.map +1 -1
  52. package/dist/tools/changes.js +24 -33
  53. package/dist/tools/changes.js.map +1 -1
  54. package/dist/tools/compaction.d.ts.map +1 -1
  55. package/dist/tools/compaction.js +19 -72
  56. package/dist/tools/compaction.js.map +1 -1
  57. package/dist/tools/conventions.d.ts.map +1 -1
  58. package/dist/tools/conventions.js +9 -18
  59. package/dist/tools/conventions.js.map +1 -1
  60. package/dist/tools/decisions.d.ts.map +1 -1
  61. package/dist/tools/decisions.js +71 -45
  62. package/dist/tools/decisions.js.map +1 -1
  63. package/dist/tools/export-import.d.ts.map +1 -1
  64. package/dist/tools/export-import.js +21 -35
  65. package/dist/tools/export-import.js.map +1 -1
  66. package/dist/tools/file-notes.d.ts.map +1 -1
  67. package/dist/tools/file-notes.js +58 -36
  68. package/dist/tools/file-notes.js.map +1 -1
  69. package/dist/tools/intelligence.d.ts.map +1 -1
  70. package/dist/tools/intelligence.js +109 -164
  71. package/dist/tools/intelligence.js.map +1 -1
  72. package/dist/tools/milestones.d.ts.map +1 -1
  73. package/dist/tools/milestones.js +6 -10
  74. package/dist/tools/milestones.js.map +1 -1
  75. package/dist/tools/scheduler.d.ts.map +1 -1
  76. package/dist/tools/scheduler.js +42 -89
  77. package/dist/tools/scheduler.js.map +1 -1
  78. package/dist/tools/sessions.d.ts.map +1 -1
  79. package/dist/tools/sessions.js +131 -226
  80. package/dist/tools/sessions.js.map +1 -1
  81. package/dist/tools/stats.d.ts.map +1 -1
  82. package/dist/tools/stats.js +169 -8
  83. package/dist/tools/stats.js.map +1 -1
  84. package/dist/tools/tasks.d.ts.map +1 -1
  85. package/dist/tools/tasks.js +9 -20
  86. package/dist/tools/tasks.js.map +1 -1
  87. package/dist/utils.d.ts +9 -0
  88. package/dist/utils.d.ts.map +1 -1
  89. package/dist/utils.js +18 -0
  90. package/dist/utils.js.map +1 -1
  91. package/package.json +60 -52
  92. package/scripts/inject-release-notes.js +66 -0
  93. package/dist/installer.d.ts +0 -2
  94. package/dist/installer.d.ts.map +0 -1
  95. package/dist/installer.js +0 -315
  96. package/dist/installer.js.map +0 -1
  97. package/dist/src/constants.d.ts +0 -21
  98. package/dist/src/constants.d.ts.map +0 -1
  99. package/dist/src/constants.js +0 -81
  100. package/dist/src/constants.js.map +0 -1
  101. package/dist/src/database.d.ts +0 -32
  102. package/dist/src/database.d.ts.map +0 -1
  103. package/dist/src/database.js +0 -143
  104. package/dist/src/database.js.map +0 -1
  105. package/dist/src/errors.d.ts +0 -40
  106. package/dist/src/errors.d.ts.map +0 -1
  107. package/dist/src/errors.js +0 -63
  108. package/dist/src/errors.js.map +0 -1
  109. package/dist/src/index.d.ts +0 -3
  110. package/dist/src/index.d.ts.map +0 -1
  111. package/dist/src/index.js +0 -89
  112. package/dist/src/index.js.map +0 -1
  113. package/dist/src/installer/config-writer.d.ts +0 -25
  114. package/dist/src/installer/config-writer.d.ts.map +0 -1
  115. package/dist/src/installer/config-writer.js +0 -86
  116. package/dist/src/installer/config-writer.js.map +0 -1
  117. package/dist/src/installer/ide-configs.d.ts +0 -19
  118. package/dist/src/installer/ide-configs.d.ts.map +0 -1
  119. package/dist/src/installer/ide-configs.js +0 -131
  120. package/dist/src/installer/ide-configs.js.map +0 -1
  121. package/dist/src/installer/ide-detector.d.ts +0 -6
  122. package/dist/src/installer/ide-detector.d.ts.map +0 -1
  123. package/dist/src/installer/ide-detector.js +0 -45
  124. package/dist/src/installer/ide-detector.js.map +0 -1
  125. package/dist/src/installer/index.d.ts +0 -2
  126. package/dist/src/installer/index.d.ts.map +0 -1
  127. package/dist/src/installer/index.js +0 -229
  128. package/dist/src/installer/index.js.map +0 -1
  129. package/dist/src/logger.d.ts +0 -10
  130. package/dist/src/logger.d.ts.map +0 -1
  131. package/dist/src/logger.js +0 -51
  132. package/dist/src/logger.js.map +0 -1
  133. package/dist/src/migrations.d.ts +0 -4
  134. package/dist/src/migrations.d.ts.map +0 -1
  135. package/dist/src/migrations.js +0 -343
  136. package/dist/src/migrations.js.map +0 -1
  137. package/dist/src/repositories/changes.repo.d.ts +0 -35
  138. package/dist/src/repositories/changes.repo.d.ts.map +0 -1
  139. package/dist/src/repositories/changes.repo.js +0 -53
  140. package/dist/src/repositories/changes.repo.js.map +0 -1
  141. package/dist/src/repositories/config.repo.d.ts +0 -11
  142. package/dist/src/repositories/config.repo.d.ts.map +0 -1
  143. package/dist/src/repositories/config.repo.js +0 -38
  144. package/dist/src/repositories/config.repo.js.map +0 -1
  145. package/dist/src/repositories/conventions.repo.d.ts +0 -15
  146. package/dist/src/repositories/conventions.repo.d.ts.map +0 -1
  147. package/dist/src/repositories/conventions.repo.js +0 -39
  148. package/dist/src/repositories/conventions.repo.js.map +0 -1
  149. package/dist/src/repositories/decisions.repo.d.ts +0 -19
  150. package/dist/src/repositories/decisions.repo.d.ts.map +0 -1
  151. package/dist/src/repositories/decisions.repo.js +0 -48
  152. package/dist/src/repositories/decisions.repo.js.map +0 -1
  153. package/dist/src/repositories/events.repo.d.ts +0 -34
  154. package/dist/src/repositories/events.repo.d.ts.map +0 -1
  155. package/dist/src/repositories/events.repo.js +0 -71
  156. package/dist/src/repositories/events.repo.js.map +0 -1
  157. package/dist/src/repositories/file-notes.repo.d.ts +0 -26
  158. package/dist/src/repositories/file-notes.repo.d.ts.map +0 -1
  159. package/dist/src/repositories/file-notes.repo.js +0 -55
  160. package/dist/src/repositories/file-notes.repo.js.map +0 -1
  161. package/dist/src/repositories/index.d.ts +0 -38
  162. package/dist/src/repositories/index.d.ts.map +0 -1
  163. package/dist/src/repositories/index.js +0 -41
  164. package/dist/src/repositories/index.js.map +0 -1
  165. package/dist/src/repositories/milestones.repo.d.ts +0 -10
  166. package/dist/src/repositories/milestones.repo.d.ts.map +0 -1
  167. package/dist/src/repositories/milestones.repo.js +0 -20
  168. package/dist/src/repositories/milestones.repo.js.map +0 -1
  169. package/dist/src/repositories/sessions.repo.d.ts +0 -27
  170. package/dist/src/repositories/sessions.repo.d.ts.map +0 -1
  171. package/dist/src/repositories/sessions.repo.js +0 -61
  172. package/dist/src/repositories/sessions.repo.js.map +0 -1
  173. package/dist/src/repositories/snapshot.repo.d.ts +0 -11
  174. package/dist/src/repositories/snapshot.repo.d.ts.map +0 -1
  175. package/dist/src/repositories/snapshot.repo.js +0 -17
  176. package/dist/src/repositories/snapshot.repo.js.map +0 -1
  177. package/dist/src/repositories/tasks.repo.d.ts +0 -40
  178. package/dist/src/repositories/tasks.repo.d.ts.map +0 -1
  179. package/dist/src/repositories/tasks.repo.js +0 -90
  180. package/dist/src/repositories/tasks.repo.js.map +0 -1
  181. package/dist/src/response.d.ts +0 -28
  182. package/dist/src/response.d.ts.map +0 -1
  183. package/dist/src/response.js +0 -38
  184. package/dist/src/response.js.map +0 -1
  185. package/dist/src/scripts/install-hooks.d.ts +0 -3
  186. package/dist/src/scripts/install-hooks.d.ts.map +0 -1
  187. package/dist/src/scripts/install-hooks.js +0 -89
  188. package/dist/src/scripts/install-hooks.js.map +0 -1
  189. package/dist/src/services/compaction.service.d.ts +0 -27
  190. package/dist/src/services/compaction.service.d.ts.map +0 -1
  191. package/dist/src/services/compaction.service.js +0 -93
  192. package/dist/src/services/compaction.service.js.map +0 -1
  193. package/dist/src/services/event-trigger.service.d.ts +0 -24
  194. package/dist/src/services/event-trigger.service.d.ts.map +0 -1
  195. package/dist/src/services/event-trigger.service.js +0 -60
  196. package/dist/src/services/event-trigger.service.js.map +0 -1
  197. package/dist/src/services/git.service.d.ts +0 -20
  198. package/dist/src/services/git.service.d.ts.map +0 -1
  199. package/dist/src/services/git.service.js +0 -88
  200. package/dist/src/services/git.service.js.map +0 -1
  201. package/dist/src/services/index.d.ts +0 -5
  202. package/dist/src/services/index.d.ts.map +0 -1
  203. package/dist/src/services/index.js +0 -8
  204. package/dist/src/services/index.js.map +0 -1
  205. package/dist/src/services/project-scan.service.d.ts +0 -19
  206. package/dist/src/services/project-scan.service.d.ts.map +0 -1
  207. package/dist/src/services/project-scan.service.js +0 -66
  208. package/dist/src/services/project-scan.service.js.map +0 -1
  209. package/dist/src/tools/backup.d.ts +0 -3
  210. package/dist/src/tools/backup.d.ts.map +0 -1
  211. package/dist/src/tools/backup.js +0 -191
  212. package/dist/src/tools/backup.js.map +0 -1
  213. package/dist/src/tools/changes.d.ts +0 -3
  214. package/dist/src/tools/changes.d.ts.map +0 -1
  215. package/dist/src/tools/changes.js +0 -97
  216. package/dist/src/tools/changes.js.map +0 -1
  217. package/dist/src/tools/compaction.d.ts +0 -3
  218. package/dist/src/tools/compaction.d.ts.map +0 -1
  219. package/dist/src/tools/compaction.js +0 -151
  220. package/dist/src/tools/compaction.js.map +0 -1
  221. package/dist/src/tools/conventions.d.ts +0 -3
  222. package/dist/src/tools/conventions.d.ts.map +0 -1
  223. package/dist/src/tools/conventions.js +0 -121
  224. package/dist/src/tools/conventions.js.map +0 -1
  225. package/dist/src/tools/decisions.d.ts +0 -3
  226. package/dist/src/tools/decisions.d.ts.map +0 -1
  227. package/dist/src/tools/decisions.js +0 -136
  228. package/dist/src/tools/decisions.js.map +0 -1
  229. package/dist/src/tools/export-import.d.ts +0 -3
  230. package/dist/src/tools/export-import.d.ts.map +0 -1
  231. package/dist/src/tools/export-import.js +0 -180
  232. package/dist/src/tools/export-import.js.map +0 -1
  233. package/dist/src/tools/file-notes.d.ts +0 -3
  234. package/dist/src/tools/file-notes.d.ts.map +0 -1
  235. package/dist/src/tools/file-notes.js +0 -104
  236. package/dist/src/tools/file-notes.js.map +0 -1
  237. package/dist/src/tools/intelligence.d.ts +0 -3
  238. package/dist/src/tools/intelligence.d.ts.map +0 -1
  239. package/dist/src/tools/intelligence.js +0 -427
  240. package/dist/src/tools/intelligence.js.map +0 -1
  241. package/dist/src/tools/milestones.d.ts +0 -3
  242. package/dist/src/tools/milestones.d.ts.map +0 -1
  243. package/dist/src/tools/milestones.js +0 -71
  244. package/dist/src/tools/milestones.js.map +0 -1
  245. package/dist/src/tools/scheduler.d.ts +0 -3
  246. package/dist/src/tools/scheduler.d.ts.map +0 -1
  247. package/dist/src/tools/scheduler.js +0 -363
  248. package/dist/src/tools/scheduler.js.map +0 -1
  249. package/dist/src/tools/sessions.d.ts +0 -3
  250. package/dist/src/tools/sessions.d.ts.map +0 -1
  251. package/dist/src/tools/sessions.js +0 -356
  252. package/dist/src/tools/sessions.js.map +0 -1
  253. package/dist/src/tools/stats.d.ts +0 -3
  254. package/dist/src/tools/stats.d.ts.map +0 -1
  255. package/dist/src/tools/stats.js +0 -63
  256. package/dist/src/tools/stats.js.map +0 -1
  257. package/dist/src/tools/tasks.d.ts +0 -3
  258. package/dist/src/tools/tasks.d.ts.map +0 -1
  259. package/dist/src/tools/tasks.js +0 -206
  260. package/dist/src/tools/tasks.js.map +0 -1
  261. package/dist/src/types.d.ts +0 -170
  262. package/dist/src/types.d.ts.map +0 -1
  263. package/dist/src/types.js +0 -5
  264. package/dist/src/types.js.map +0 -1
  265. package/dist/src/utils.d.ts +0 -58
  266. package/dist/src/utils.d.ts.map +0 -1
  267. package/dist/src/utils.js +0 -190
  268. package/dist/src/utils.js.map +0 -1
  269. package/dist/tests/helpers/test-db.d.ts +0 -12
  270. package/dist/tests/helpers/test-db.d.ts.map +0 -1
  271. package/dist/tests/helpers/test-db.js +0 -149
  272. package/dist/tests/helpers/test-db.js.map +0 -1
  273. package/dist/tests/installer/installer.test.d.ts +0 -2
  274. package/dist/tests/installer/installer.test.d.ts.map +0 -1
  275. package/dist/tests/installer/installer.test.js +0 -160
  276. package/dist/tests/installer/installer.test.js.map +0 -1
  277. package/dist/tests/repositories/repos.test.d.ts +0 -2
  278. package/dist/tests/repositories/repos.test.d.ts.map +0 -1
  279. package/dist/tests/repositories/repos.test.js +0 -220
  280. package/dist/tests/repositories/repos.test.js.map +0 -1
  281. package/dist/tools/maintenance.d.ts +0 -3
  282. package/dist/tools/maintenance.d.ts.map +0 -1
  283. package/dist/tools/maintenance.js +0 -647
  284. package/dist/tools/maintenance.js.map +0 -1
  285. package/dist/tools/memory.d.ts +0 -3
  286. package/dist/tools/memory.d.ts.map +0 -1
  287. package/dist/tools/memory.js +0 -446
  288. package/dist/tools/memory.js.map +0 -1
@@ -0,0 +1,29 @@
1
+ import type { Repositories } from "../repositories/index.js";
2
+ export interface UpdateNotification {
3
+ installed_version: string;
4
+ available_version: string;
5
+ changelog: string;
6
+ releases_url: string;
7
+ }
8
+ export declare class UpdateService {
9
+ private repos;
10
+ private currentVersion;
11
+ /** Ensures we only surface the notification once per server process. */
12
+ private _notifiedThisProcess;
13
+ constructor(repos: Repositories, currentVersion: string);
14
+ /**
15
+ * Fire-and-forget: schedule an async update check via setImmediate so it
16
+ * never blocks server startup. All errors are swallowed — update checking
17
+ * is strictly best-effort.
18
+ */
19
+ scheduleCheck(): void;
20
+ /**
21
+ * Returns an update notification if a newer version is available.
22
+ * Only returns a value once per process lifetime to avoid spamming the
23
+ * agent on every engram_start_session call.
24
+ */
25
+ getNotification(): UpdateNotification | null;
26
+ private _check;
27
+ private _fetchLatest;
28
+ }
29
+ //# sourceMappingURL=update.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.service.d.ts","sourceRoot":"","sources":["../../src/services/update.service.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAc7D,MAAM,WAAW,kBAAkB;IAC/B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACxB;AA6DD,qBAAa,aAAa;IAKlB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,cAAc;IAL1B,wEAAwE;IACxE,OAAO,CAAC,oBAAoB,CAAS;gBAGzB,KAAK,EAAE,YAAY,EACnB,cAAc,EAAE,MAAM;IAGlC;;;;OAIG;IACH,aAAa,IAAI,IAAI;IAMrB;;;;OAIG;IACH,eAAe,IAAI,kBAAkB,GAAG,IAAI;YAc9B,MAAM;YA8CN,YAAY;CAoB7B"}
@@ -0,0 +1,166 @@
1
+ // ============================================================================
2
+ // Engram MCP Server — Update Check Service
3
+ // ============================================================================
4
+ import { NPM_REGISTRY_URL, GITHUB_RELEASES_API_URL, GITHUB_RELEASES_URL, CFG_AUTO_UPDATE_CHECK, CFG_AUTO_UPDATE_LAST_CHECK, CFG_AUTO_UPDATE_AVAILABLE, CFG_AUTO_UPDATE_CHANGELOG, CFG_AUTO_UPDATE_SKIP_VERSION, CFG_AUTO_UPDATE_REMIND_AFTER, CFG_AUTO_UPDATE_NOTIFY_LEVEL, } from "../constants.js";
5
+ // ─── Semver helpers ───────────────────────────────────────────────────
6
+ function parseSemver(v) {
7
+ const parts = v.replace(/^v/, "").split(".").map(n => parseInt(n, 10) || 0);
8
+ return [parts[0] ?? 0, parts[1] ?? 0, parts[2] ?? 0];
9
+ }
10
+ /** Returns positive if a > b, negative if a < b, 0 if equal. */
11
+ function compareSemver(a, b) {
12
+ const pa = parseSemver(a);
13
+ const pb = parseSemver(b);
14
+ for (let i = 0; i < 3; i++) {
15
+ if (pa[i] !== pb[i])
16
+ return (pa[i] ?? 0) - (pb[i] ?? 0);
17
+ }
18
+ return 0;
19
+ }
20
+ /** Returns the bump category between two versions. */
21
+ function semverBumpType(newer, older) {
22
+ const pn = parseSemver(newer);
23
+ const po = parseSemver(older);
24
+ if ((pn[0] ?? 0) > (po[0] ?? 0))
25
+ return "major";
26
+ if ((pn[1] ?? 0) > (po[1] ?? 0))
27
+ return "minor";
28
+ if ((pn[2] ?? 0) > (po[2] ?? 0))
29
+ return "patch";
30
+ return "none";
31
+ }
32
+ // Rank: patch=0, minor=1, major=2
33
+ const BUMP_RANK = { patch: 0, minor: 1, major: 2 };
34
+ /**
35
+ * Returns true if the given bump type meets or exceeds the configured notify level.
36
+ * e.g. notifyLevel="minor" → notifies for minor and major, but not patch.
37
+ */
38
+ function notifyLevelAllows(notifyLevel, bumpType) {
39
+ const threshold = BUMP_RANK[notifyLevel] ?? 1; // default: minor
40
+ const actual = BUMP_RANK[bumpType] ?? -1;
41
+ return actual >= threshold;
42
+ }
43
+ // ─── Fetch helper ─────────────────────────────────────────────────────
44
+ async function fetchWithTimeout(url, timeoutMs) {
45
+ const controller = new AbortController();
46
+ const timer = setTimeout(() => controller.abort(), timeoutMs);
47
+ try {
48
+ const res = await fetch(url, {
49
+ signal: controller.signal,
50
+ headers: { "User-Agent": "engram-mcp-server" },
51
+ });
52
+ if (!res.ok)
53
+ throw new Error(`HTTP ${res.status}`);
54
+ return await res.json();
55
+ }
56
+ finally {
57
+ clearTimeout(timer);
58
+ }
59
+ }
60
+ // ─── UpdateService ────────────────────────────────────────────────────
61
+ export class UpdateService {
62
+ repos;
63
+ currentVersion;
64
+ /** Ensures we only surface the notification once per server process. */
65
+ _notifiedThisProcess = false;
66
+ constructor(repos, currentVersion) {
67
+ this.repos = repos;
68
+ this.currentVersion = currentVersion;
69
+ }
70
+ /**
71
+ * Fire-and-forget: schedule an async update check via setImmediate so it
72
+ * never blocks server startup. All errors are swallowed — update checking
73
+ * is strictly best-effort.
74
+ */
75
+ scheduleCheck() {
76
+ setImmediate(() => {
77
+ this._check().catch(() => { });
78
+ });
79
+ }
80
+ /**
81
+ * Returns an update notification if a newer version is available.
82
+ * Only returns a value once per process lifetime to avoid spamming the
83
+ * agent on every engram_start_session call.
84
+ */
85
+ getNotification() {
86
+ if (this._notifiedThisProcess)
87
+ return null;
88
+ const available = this.repos.config.get(CFG_AUTO_UPDATE_AVAILABLE);
89
+ if (!available)
90
+ return null;
91
+ this._notifiedThisProcess = true;
92
+ const changelog = this.repos.config.get(CFG_AUTO_UPDATE_CHANGELOG) || "";
93
+ return {
94
+ installed_version: this.currentVersion,
95
+ available_version: available,
96
+ changelog,
97
+ releases_url: GITHUB_RELEASES_URL,
98
+ };
99
+ }
100
+ async _check() {
101
+ // 1. Respect auto_update_check toggle (default: on)
102
+ const enabled = this.repos.config.getBool(CFG_AUTO_UPDATE_CHECK, true);
103
+ if (!enabled)
104
+ return;
105
+ // 2. Respect snooze / postpone
106
+ const remindAfter = this.repos.config.get(CFG_AUTO_UPDATE_REMIND_AFTER);
107
+ if (remindAfter && new Date(remindAfter) > new Date())
108
+ return;
109
+ // 3. Throttle to once per 24h
110
+ const lastCheck = this.repos.config.get(CFG_AUTO_UPDATE_LAST_CHECK);
111
+ if (lastCheck) {
112
+ const hoursSince = (Date.now() - new Date(lastCheck).getTime()) / 3_600_000;
113
+ if (hoursSince < 24)
114
+ return;
115
+ }
116
+ // 4. Fetch latest version info
117
+ const fetched = await this._fetchLatest();
118
+ const ts = new Date().toISOString();
119
+ this.repos.config.set(CFG_AUTO_UPDATE_LAST_CHECK, ts, ts);
120
+ if (!fetched)
121
+ return;
122
+ const { version: latestVersion, changelog } = fetched;
123
+ const skipVersion = this.repos.config.get(CFG_AUTO_UPDATE_SKIP_VERSION) || "";
124
+ const notifyLevel = this.repos.config.getOrDefault(CFG_AUTO_UPDATE_NOTIFY_LEVEL, "minor");
125
+ const isNewer = compareSemver(latestVersion, this.currentVersion) > 0;
126
+ const bumpType = semverBumpType(latestVersion, this.currentVersion);
127
+ const shouldNotify = isNewer &&
128
+ latestVersion !== skipVersion &&
129
+ notifyLevelAllows(notifyLevel, bumpType);
130
+ if (shouldNotify) {
131
+ this.repos.config.set(CFG_AUTO_UPDATE_AVAILABLE, latestVersion, ts);
132
+ this.repos.config.set(CFG_AUTO_UPDATE_CHANGELOG, changelog, ts);
133
+ }
134
+ else {
135
+ // Clear stale notification when the user has already updated
136
+ const stored = this.repos.config.get(CFG_AUTO_UPDATE_AVAILABLE);
137
+ if (stored && !isNewer) {
138
+ this.repos.config.set(CFG_AUTO_UPDATE_AVAILABLE, "", ts);
139
+ this.repos.config.set(CFG_AUTO_UPDATE_CHANGELOG, "", ts);
140
+ }
141
+ }
142
+ }
143
+ async _fetchLatest() {
144
+ // Primary: npm registry — includes releaseNotes field if inject script ran at publish time
145
+ try {
146
+ const data = await fetchWithTimeout(NPM_REGISTRY_URL, 5_000);
147
+ const version = data["version"];
148
+ const changelog = data["releaseNotes"] ?? "";
149
+ if (version)
150
+ return { version, changelog };
151
+ }
152
+ catch { /* fall through to GitHub */ }
153
+ // Fallback: GitHub Releases API
154
+ try {
155
+ const data = await fetchWithTimeout(GITHUB_RELEASES_API_URL, 5_000);
156
+ const tag = data["tag_name"] ?? "";
157
+ const version = tag.replace(/^v/, "");
158
+ const changelog = data["body"] ?? "";
159
+ if (version)
160
+ return { version, changelog };
161
+ }
162
+ catch { /* both sources unavailable — likely offline */ }
163
+ return null;
164
+ }
165
+ }
166
+ //# sourceMappingURL=update.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.service.js","sourceRoot":"","sources":["../../src/services/update.service.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,2CAA2C;AAC3C,+EAA+E;AAG/E,OAAO,EACH,gBAAgB,EAChB,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,EACrB,0BAA0B,EAC1B,yBAAyB,EACzB,yBAAyB,EACzB,4BAA4B,EAC5B,4BAA4B,EAC5B,4BAA4B,GAC/B,MAAM,iBAAiB,CAAC;AASzB,yEAAyE;AAEzE,SAAS,WAAW,CAAC,CAAS;IAC1B,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5E,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,gEAAgE;AAChE,SAAS,aAAa,CAAC,CAAS,EAAE,CAAS;IACvC,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAC1B,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACzB,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,CAAC,CAAC;AACb,CAAC;AAED,sDAAsD;AACtD,SAAS,cAAc,CAAC,KAAa,EAAE,KAAa;IAChD,MAAM,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAC9B,MAAM,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAC9B,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAAE,OAAO,OAAO,CAAC;IAChD,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAAE,OAAO,OAAO,CAAC;IAChD,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAAE,OAAO,OAAO,CAAC;IAChD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,kCAAkC;AAClC,MAAM,SAAS,GAA2B,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AAE3E;;;GAGG;AACH,SAAS,iBAAiB,CAAC,WAAmB,EAAE,QAAgB;IAC5D,MAAM,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB;IAChE,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IACzC,OAAO,MAAM,IAAI,SAAS,CAAC;AAC/B,CAAC;AAED,yEAAyE;AAEzE,KAAK,UAAU,gBAAgB,CAAC,GAAW,EAAE,SAAiB;IAC1D,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;IAC9D,IAAI,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YACzB,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,OAAO,EAAE,EAAE,YAAY,EAAE,mBAAmB,EAAE;SACjD,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QACnD,OAAO,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAC5B,CAAC;YAAS,CAAC;QACP,YAAY,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;AACL,CAAC;AAED,yEAAyE;AAEzE,MAAM,OAAO,aAAa;IAKV;IACA;IALZ,wEAAwE;IAChE,oBAAoB,GAAG,KAAK,CAAC;IAErC,YACY,KAAmB,EACnB,cAAsB;QADtB,UAAK,GAAL,KAAK,CAAc;QACnB,mBAAc,GAAd,cAAc,CAAQ;IAC9B,CAAC;IAEL;;;;OAIG;IACH,aAAa;QACT,YAAY,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAyD,CAAC,CAAC,CAAC;QACzF,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;OAIG;IACH,eAAe;QACX,IAAI,IAAI,CAAC,oBAAoB;YAAE,OAAO,IAAI,CAAC;QAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QACnE,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAC5B,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC;QACzE,OAAO;YACH,iBAAiB,EAAE,IAAI,CAAC,cAAc;YACtC,iBAAiB,EAAE,SAAS;YAC5B,SAAS;YACT,YAAY,EAAE,mBAAmB;SACpC,CAAC;IACN,CAAC;IAEO,KAAK,CAAC,MAAM;QAChB,oDAAoD;QACpD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;QACvE,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,+BAA+B;QAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QACxE,IAAI,WAAW,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,IAAI,EAAE;YAAE,OAAO;QAE9D,8BAA8B;QAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QACpE,IAAI,SAAS,EAAE,CAAC;YACZ,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,SAAS,CAAC;YAC5E,IAAI,UAAU,GAAG,EAAE;gBAAE,OAAO;QAChC,CAAC;QAED,+BAA+B;QAC/B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1C,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,0BAA0B,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;QACtD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC,IAAI,EAAE,CAAC;QAC9E,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,4BAA4B,EAAE,OAAO,CAAC,CAAC;QAE1F,MAAM,OAAO,GAAG,aAAa,CAAC,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QACtE,MAAM,QAAQ,GAAG,cAAc,CAAC,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QACpE,MAAM,YAAY,GACd,OAAO;YACP,aAAa,KAAK,WAAW;YAC7B,iBAAiB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAE7C,IAAI,YAAY,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,yBAAyB,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;YACpE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,yBAAyB,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;QACpE,CAAC;aAAM,CAAC;YACJ,6DAA6D;YAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;YAChE,IAAI,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;gBACrB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,yBAAyB,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;gBACzD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,yBAAyB,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YAC7D,CAAC;QACL,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,YAAY;QACtB,2FAA2F;QAC3F,IAAI,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,gBAAgB,EAAE,KAAK,CAA4B,CAAC;YACxF,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAuB,CAAC;YACtD,MAAM,SAAS,GAAI,IAAI,CAAC,cAAc,CAAwB,IAAI,EAAE,CAAC;YACrE,IAAI,OAAO;gBAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;QAC/C,CAAC;QAAC,MAAM,CAAC,CAAC,4BAA4B,CAAC,CAAC;QAExC,gCAAgC;QAChC,IAAI,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,uBAAuB,EAAE,KAAK,CAA4B,CAAC;YAC/F,MAAM,GAAG,GAAI,IAAI,CAAC,UAAU,CAAwB,IAAI,EAAE,CAAC;YAC3D,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACtC,MAAM,SAAS,GAAI,IAAI,CAAC,MAAM,CAAwB,IAAI,EAAE,CAAC;YAC7D,IAAI,OAAO;gBAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;QAC/C,CAAC;QAAC,MAAM,CAAC,CAAC,+CAA+C,CAAC,CAAC;QAE3D,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"backup.d.ts","sourceRoot":"","sources":["../../src/tools/backup.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AASpE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA4M3D"}
1
+ {"version":3,"file":"backup.d.ts","sourceRoot":"","sources":["../../src/tools/backup.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAUpE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAkL3D"}
@@ -7,6 +7,7 @@ import * as path from "path";
7
7
  import { getDb, now, getProjectRoot, getDbPath, backupDatabase } from "../database.js";
8
8
  import { TOOL_PREFIX, DB_DIR_NAME, BACKUP_DIR_NAME, MAX_BACKUP_COUNT } from "../constants.js";
9
9
  import { log } from "../logger.js";
10
+ import { success, error } from "../response.js";
10
11
  export function registerBackupTools(server) {
11
12
  // ─── BACKUP DATABASE ───────────────────────────────────────────────
12
13
  server.registerTool(`${TOOL_PREFIX}_backup`, {
@@ -67,15 +68,10 @@ Returns:
67
68
  }
68
69
  catch { /* skip pruning */ }
69
70
  }
70
- return {
71
- content: [{
72
- type: "text",
73
- text: JSON.stringify({
74
- ...info,
75
- message: `Backup created successfully at ${backupPath} (${sizeKb} KB).`,
76
- }, null, 2),
77
- }],
78
- };
71
+ return success({
72
+ ...info,
73
+ message: `Backup created successfully at ${backupPath} (${sizeKb} KB).`,
74
+ });
79
75
  });
80
76
  // ─── RESTORE DATABASE ──────────────────────────────────────────────
81
77
  server.registerTool(`${TOOL_PREFIX}_restore`, {
@@ -100,15 +96,12 @@ Returns:
100
96
  },
101
97
  }, async ({ input_path, confirm }) => {
102
98
  if (confirm !== "yes-restore") {
103
- return {
104
- isError: true,
105
- content: [{ type: "text", text: 'Safety check: set confirm to "yes-restore" to proceed.' }],
106
- };
99
+ return error('Safety check: set confirm to "yes-restore" to proceed.');
107
100
  }
108
101
  const projectRoot = getProjectRoot();
109
102
  const inputPath = path.isAbsolute(input_path) ? input_path : path.join(projectRoot, input_path);
110
103
  if (!fs.existsSync(inputPath)) {
111
- return { isError: true, content: [{ type: "text", text: `Backup file not found: ${inputPath}` }] };
104
+ return error(`Backup file not found: ${inputPath}`);
112
105
  }
113
106
  let safetyBackupPath = "";
114
107
  try {
@@ -116,31 +109,20 @@ Returns:
116
109
  log.info(`Safety backup created before restore: ${safetyBackupPath}`);
117
110
  }
118
111
  catch (e) {
119
- return {
120
- isError: true,
121
- content: [{ type: "text", text: `Failed to create safety backup before restore: ${e}. Aborting.` }],
122
- };
112
+ return error(`Failed to create safety backup before restore: ${e}. Aborting.`);
123
113
  }
124
114
  const dbPath = getDbPath();
125
115
  try {
126
116
  fs.copyFileSync(inputPath, dbPath);
127
117
  }
128
118
  catch (e) {
129
- return {
130
- isError: true,
131
- content: [{ type: "text", text: `Failed to restore: ${e}. Your previous database is backed up at ${safetyBackupPath}.` }],
132
- };
119
+ return error(`Failed to restore: ${e}. Your previous database is backed up at ${safetyBackupPath}.`);
133
120
  }
134
- return {
135
- content: [{
136
- type: "text",
137
- text: JSON.stringify({
138
- restored_from: inputPath,
139
- safety_backup: safetyBackupPath,
140
- message: "Database restored successfully. Please RESTART the MCP server to load the restored database. A safety backup of the previous database was created.",
141
- }, null, 2),
142
- }],
143
- };
121
+ return success({
122
+ restored_from: inputPath,
123
+ safety_backup: safetyBackupPath,
124
+ message: "Database restored successfully. Please RESTART the MCP server to load the restored database. A safety backup of the previous database was created.",
125
+ });
144
126
  });
145
127
  // ─── LIST BACKUPS ──────────────────────────────────────────────────
146
128
  server.registerTool(`${TOOL_PREFIX}_list_backups`, {
@@ -159,9 +141,7 @@ Returns:
159
141
  }, async () => {
160
142
  const backupDir = path.join(getProjectRoot(), DB_DIR_NAME, BACKUP_DIR_NAME);
161
143
  if (!fs.existsSync(backupDir)) {
162
- return {
163
- content: [{ type: "text", text: JSON.stringify({ backups: [], message: "No backups found." }, null, 2) }],
164
- };
144
+ return success({ backups: [], message: "No backups found." });
165
145
  }
166
146
  const files = fs.readdirSync(backupDir)
167
147
  .filter(f => f.endsWith(".db"))
@@ -176,16 +156,11 @@ Returns:
176
156
  };
177
157
  })
178
158
  .sort((a, b) => new Date(b.created_at).getTime() - new Date(a.created_at).getTime());
179
- return {
180
- content: [{
181
- type: "text",
182
- text: JSON.stringify({
183
- backup_directory: backupDir,
184
- count: files.length,
185
- backups: files,
186
- }, null, 2),
187
- }],
188
- };
159
+ return success({
160
+ backup_directory: backupDir,
161
+ count: files.length,
162
+ backups: files,
163
+ });
189
164
  });
190
165
  }
191
166
  //# sourceMappingURL=backup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"backup.js","sourceRoot":"","sources":["../../src/tools/backup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backup.js","sourceRoot":"","sources":["../../src/tools/backup.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"changes.d.ts","sourceRoot":"","sources":["../../src/tools/changes.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMpE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAiH3D"}
1
+ {"version":3,"file":"changes.d.ts","sourceRoot":"","sources":["../../src/tools/changes.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOpE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA4F3D"}
@@ -2,8 +2,10 @@
2
2
  // Engram MCP Server — Change Tracking Tools
3
3
  // ============================================================================
4
4
  import { z } from "zod";
5
- import { getDb, now, getCurrentSessionId } from "../database.js";
5
+ import { now, getCurrentSessionId, getRepos } from "../database.js";
6
6
  import { TOOL_PREFIX } from "../constants.js";
7
+ import { normalizePath } from "../utils.js";
8
+ import { success } from "../response.js";
7
9
  export function registerChangeTools(server) {
8
10
  server.registerTool(`${TOOL_PREFIX}_record_change`, {
9
11
  title: "Record Change",
@@ -35,25 +37,18 @@ Returns:
35
37
  openWorldHint: false,
36
38
  },
37
39
  }, async ({ changes }) => {
38
- const db = getDb();
40
+ const repos = getRepos();
39
41
  const timestamp = now();
40
42
  const sessionId = getCurrentSessionId();
41
- const insert = db.prepare("INSERT INTO changes (session_id, timestamp, file_path, change_type, description, diff_summary, impact_scope) VALUES (?, ?, ?, ?, ?, ?, ?)");
42
- const transaction = db.transaction(() => {
43
- for (const c of changes) {
44
- insert.run(sessionId, timestamp, c.file_path, c.change_type, c.description, c.diff_summary || null, c.impact_scope);
45
- if (sessionId) {
46
- db.prepare("UPDATE file_notes SET last_modified_session = ? WHERE file_path = ?").run(sessionId, c.file_path);
47
- }
48
- }
43
+ const normalized = changes.map(c => ({
44
+ ...c,
45
+ file_path: normalizePath(c.file_path),
46
+ }));
47
+ repos.changes.recordBulk(normalized, sessionId, timestamp);
48
+ return success({
49
+ message: `Recorded ${changes.length} change(s) in session #${sessionId ?? "none"}.`,
50
+ count: changes.length,
49
51
  });
50
- transaction();
51
- return {
52
- content: [{
53
- type: "text",
54
- text: `Recorded ${changes.length} change(s) in session #${sessionId ?? "none"}.`,
55
- }],
56
- };
57
52
  });
58
53
  server.registerTool(`${TOOL_PREFIX}_get_file_history`, {
59
54
  title: "Get File History",
@@ -76,22 +71,18 @@ Returns:
76
71
  openWorldHint: false,
77
72
  },
78
73
  }, async ({ file_path, limit }) => {
79
- const db = getDb();
80
- const notes = db.prepare("SELECT * FROM file_notes WHERE file_path = ?").get(file_path);
81
- const changes = db.prepare("SELECT * FROM changes WHERE file_path = ? ORDER BY timestamp DESC LIMIT ?").all(file_path, limit);
82
- const decisions = db.prepare("SELECT * FROM decisions WHERE affected_files LIKE ? AND status = 'active' ORDER BY timestamp DESC").all(`%${file_path}%`);
83
- return {
84
- content: [{
85
- type: "text",
86
- text: JSON.stringify({
87
- file_path,
88
- notes: notes || null,
89
- change_count: changes.length,
90
- changes,
91
- related_decisions: decisions,
92
- }, null, 2),
93
- }],
94
- };
74
+ const repos = getRepos();
75
+ const fp = normalizePath(file_path);
76
+ const notes = repos.fileNotes.getByPath(fp);
77
+ const changes = repos.changes.getByFile(fp, limit);
78
+ const decisions = repos.decisions.getByFile(fp);
79
+ return success({
80
+ file_path: fp,
81
+ notes: notes || null,
82
+ change_count: changes.length,
83
+ changes,
84
+ related_decisions: decisions,
85
+ });
95
86
  });
96
87
  }
97
88
  //# sourceMappingURL=changes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"changes.js","sourceRoot":"","sources":["../../src/tools/changes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"changes.js","sourceRoot":"","sources":["../../src/tools/changes.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"compaction.d.ts","sourceRoot":"","sources":["../../src/tools/compaction.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOpE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAoL/D"}
1
+ {"version":3,"file":"compaction.d.ts","sourceRoot":"","sources":["../../src/tools/compaction.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOpE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAwG/D"}
@@ -2,9 +2,10 @@
2
2
  // Engram MCP Server — Compaction & Clear Tools
3
3
  // ============================================================================
4
4
  import { z } from "zod";
5
- import { getDb, now, getDbSizeKb, backupDatabase } from "../database.js";
5
+ import { getDb, getDbSizeKb, backupDatabase, getServices } from "../database.js";
6
6
  import { TOOL_PREFIX, COMPACTION_THRESHOLD_SESSIONS } from "../constants.js";
7
7
  import { log } from "../logger.js";
8
+ import { success, error } from "../response.js";
8
9
  export function registerCompactionTools(server) {
9
10
  // ─── COMPACT MEMORY ─────────────────────────────────────────────────
10
11
  server.registerTool(`${TOOL_PREFIX}_compact`, {
@@ -30,72 +31,24 @@ Returns:
30
31
  openWorldHint: false,
31
32
  },
32
33
  }, async ({ keep_sessions, max_age_days, dry_run }) => {
33
- const db = getDb();
34
- const cutoff = db.prepare("SELECT id FROM sessions ORDER BY id DESC LIMIT 1 OFFSET ?").get(keep_sessions);
35
- if (!cutoff) {
36
- return {
37
- content: [{ type: "text", text: "Not enough sessions to compact. Nothing to do." }],
38
- };
39
- }
40
- let sessionsQuery = "SELECT COUNT(*) as c FROM sessions WHERE id <= ? AND ended_at IS NOT NULL";
41
- const sessionsParams = [cutoff.id];
42
- if (max_age_days) {
43
- const cutoffDate = new Date(Date.now() - max_age_days * 86400000).toISOString();
44
- sessionsQuery += " AND started_at < ?";
45
- sessionsParams.push(cutoffDate);
46
- }
47
- const sessionsToCompact = db.prepare(sessionsQuery).get(...sessionsParams).c;
48
- const changesToSummarize = db.prepare("SELECT COUNT(*) as c FROM changes WHERE session_id <= ?").get(cutoff.id).c;
34
+ const services = getServices();
49
35
  const sizeBefore = getDbSizeKb();
36
+ const result = services.compaction.manualCompact(keep_sessions, max_age_days, dry_run);
50
37
  if (dry_run) {
51
- return {
52
- content: [{
53
- type: "text",
54
- text: JSON.stringify({
55
- dry_run: true,
56
- would_compact: { sessions: sessionsToCompact, changes: changesToSummarize },
57
- message: `Would compact ${sessionsToCompact} sessions and summarize ${changesToSummarize} change records. Run with dry_run=false to execute.`,
58
- }, null, 2),
59
- }],
60
- };
61
- }
62
- let backupPath = "";
63
- try {
64
- backupPath = backupDatabase();
65
- log.info(`Auto-backup created before compaction: ${backupPath}`);
66
- }
67
- catch (e) {
68
- log.warn(`Failed to create backup before compaction: ${e}`);
38
+ return success({
39
+ dry_run: true,
40
+ would_compact: { sessions: result.sessionsCompacted, changes: result.changesSummarized },
41
+ message: `Would compact ${result.sessionsCompacted} sessions and summarize ${result.changesSummarized} change records. Run with dry_run=false to execute.`,
42
+ });
69
43
  }
70
- const compact = db.transaction(() => {
71
- const oldSessions = db.prepare("SELECT id, summary FROM sessions WHERE id <= ? AND ended_at IS NOT NULL").all(cutoff.id);
72
- for (const session of oldSessions) {
73
- const changes = db.prepare("SELECT change_type, file_path, description FROM changes WHERE session_id = ?").all(session.id);
74
- if (changes.length > 0) {
75
- const summaryDesc = changes.map(c => `[${c.change_type}] ${c.file_path}: ${c.description}`).join("; ");
76
- db.prepare("INSERT INTO changes (session_id, timestamp, file_path, change_type, description, impact_scope) VALUES (?, ?, ?, ?, ?, ?)").run(session.id, now(), "(compacted)", "modified", `Compacted ${changes.length} changes: ${summaryDesc.slice(0, 2000)}`, "global");
77
- }
78
- db.prepare("DELETE FROM changes WHERE session_id = ? AND file_path != '(compacted)'").run(session.id);
79
- }
80
- });
81
- compact();
82
- db.exec("VACUUM");
83
44
  const sizeAfter = getDbSizeKb();
84
- const result = {
85
- sessions_compacted: sessionsToCompact,
86
- changes_summarized: changesToSummarize,
45
+ return success({
46
+ sessions_compacted: result.sessionsCompacted,
47
+ changes_summarized: result.changesSummarized,
87
48
  storage_freed_kb: Math.max(0, sizeBefore - sizeAfter),
88
- };
89
- return {
90
- content: [{
91
- type: "text",
92
- text: JSON.stringify({
93
- ...result,
94
- backup_path: backupPath || null,
95
- message: `Compaction complete. ${backupPath ? `Backup saved at ${backupPath}.` : ""}`,
96
- }, null, 2),
97
- }],
98
- };
49
+ backup_path: result.backupPath || null,
50
+ message: `Compaction complete.${result.backupPath ? ` Backup saved at ${result.backupPath}.` : ""}`,
51
+ });
99
52
  });
100
53
  // ─── CLEAR MEMORY ───────────────────────────────────────────────────
101
54
  server.registerTool(`${TOOL_PREFIX}_clear`, {
@@ -120,10 +73,7 @@ Returns:
120
73
  },
121
74
  }, async ({ scope, confirm }) => {
122
75
  if (confirm !== "yes-delete-permanently") {
123
- return {
124
- isError: true,
125
- content: [{ type: "text", text: 'Safety check: set confirm to "yes-delete-permanently" to proceed.' }],
126
- };
76
+ return error('Safety check: set confirm to "yes-delete-permanently" to proceed.');
127
77
  }
128
78
  let backupPath = "";
129
79
  try {
@@ -140,12 +90,9 @@ Returns:
140
90
  for (const table of tables) {
141
91
  db.prepare(`DELETE FROM ${table}`).run();
142
92
  }
143
- return {
144
- content: [{
145
- type: "text",
146
- text: `Cleared: ${tables.join(", ")}. Memory has been reset.${backupPath ? ` Backup saved at ${backupPath}.` : ""}`,
147
- }],
148
- };
93
+ return success({
94
+ message: `Cleared: ${tables.join(", ")}. Memory has been reset.${backupPath ? ` Backup saved at ${backupPath}.` : ""}`,
95
+ });
149
96
  });
150
97
  }
151
98
  //# sourceMappingURL=compaction.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compaction.js","sourceRoot":"","sources":["../../src/tools/compaction.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,+CAA+C;AAC/C,+EAA+E;AAG/E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAGnC,MAAM,UAAU,uBAAuB,CAAC,MAAiB;IACrD,uEAAuE;IACvE,MAAM,CAAC,YAAY,CACf,GAAG,WAAW,UAAU,EACxB;QACI,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE;;;mGAG0E,6BAA6B;;;;;kDAK9E;QACtC,WAAW,EAAE;YACT,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC,QAAQ,CAAC,6BAA6B,CAAC;YACrH,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;YAC9F,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,gCAAgC,CAAC;SAChF;QACD,WAAW,EAAE;YACT,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,IAAI;YACrB,cAAc,EAAE,KAAK;YACrB,aAAa,EAAE,KAAK;SACvB;KACJ,EACD,KAAK,EAAE,EAAE,aAAa,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE;QAC/C,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;QAEnB,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CACrB,2DAA2D,CAC9D,CAAC,GAAG,CAAC,aAAa,CAA+B,CAAC;QAEnD,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,OAAO;gBACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gDAAgD,EAAE,CAAC;aACtF,CAAC;QACN,CAAC;QAED,IAAI,aAAa,GAAG,2EAA2E,CAAC;QAChG,MAAM,cAAc,GAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAE9C,IAAI,YAAY,EAAE,CAAC;YACf,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,GAAG,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;YAChF,aAAa,IAAI,qBAAqB,CAAC;YACvC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpC,CAAC;QAED,MAAM,iBAAiB,GAAI,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,GAAG,cAAc,CAAmB,CAAC,CAAC,CAAC;QAEhG,MAAM,kBAAkB,GAAI,EAAE,CAAC,OAAO,CAClC,yDAAyD,CAC5D,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAmB,CAAC,CAAC,CAAC;QAErC,MAAM,UAAU,GAAG,WAAW,EAAE,CAAC;QAEjC,IAAI,OAAO,EAAE,CAAC;YACV,OAAO;gBACH,OAAO,EAAE,CAAC;wBACN,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACjB,OAAO,EAAE,IAAI;4BACb,aAAa,EAAE,EAAE,QAAQ,EAAE,iBAAiB,EAAE,OAAO,EAAE,kBAAkB,EAAE;4BAC3E,OAAO,EAAE,iBAAiB,iBAAiB,2BAA2B,kBAAkB,qDAAqD;yBAChJ,EAAE,IAAI,EAAE,CAAC,CAAC;qBACd,CAAC;aACL,CAAC;QACN,CAAC;QAED,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC;YACD,UAAU,GAAG,cAAc,EAAE,CAAC;YAC9B,GAAG,CAAC,IAAI,CAAC,0CAA0C,UAAU,EAAE,CAAC,CAAC;QACrE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,GAAG,CAAC,IAAI,CAAC,8CAA8C,CAAC,EAAE,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;YAChC,MAAM,WAAW,GAAG,EAAE,CAAC,OAAO,CAC1B,yEAAyE,CAC5E,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAkD,CAAC;YAElE,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE,CAAC;gBAChC,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CACtB,8EAA8E,CACjF,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAA2E,CAAC;gBAE5F,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACrB,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACvG,EAAE,CAAC,OAAO,CACN,0HAA0H,CAC7H,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,OAAO,CAAC,MAAM,aAAa,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;gBACxI,CAAC;gBAED,EAAE,CAAC,OAAO,CAAC,yEAAyE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC1G,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,EAAE,CAAC;QACV,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAElB,MAAM,SAAS,GAAG,WAAW,EAAE,CAAC;QAEhC,MAAM,MAAM,GAAqB;YAC7B,kBAAkB,EAAE,iBAAiB;YACrC,kBAAkB,EAAE,kBAAkB;YACtC,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;SACxD,CAAC;QAEF,OAAO;YACH,OAAO,EAAE,CAAC;oBACN,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACjB,GAAG,MAAM;wBACT,WAAW,EAAE,UAAU,IAAI,IAAI;wBAC/B,OAAO,EAAE,wBAAwB,UAAU,CAAC,CAAC,CAAC,mBAAmB,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;qBACxF,EAAE,IAAI,EAAE,CAAC,CAAC;iBACd,CAAC;SACL,CAAC;IACN,CAAC,CACJ,CAAC;IAEF,uEAAuE;IACvE,MAAM,CAAC,YAAY,CACf,GAAG,WAAW,QAAQ,EACtB;QACI,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE;;;;;;;oCAOW;QACxB,WAAW,EAAE;YACT,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;YACvH,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;SAC3E;QACD,WAAW,EAAE;YACT,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,IAAI;YACrB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACvB;KACJ,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;QACzB,IAAI,OAAO,KAAK,wBAAwB,EAAE,CAAC;YACvC,OAAO;gBACH,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mEAAmE,EAAE,CAAC;aACzG,CAAC;QACN,CAAC;QAED,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC;YACD,UAAU,GAAG,cAAc,EAAE,CAAC;YAC9B,GAAG,CAAC,IAAI,CAAC,qCAAqC,UAAU,EAAE,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,GAAG,CAAC,IAAI,CAAC,yCAAyC,CAAC,EAAE,CAAC,CAAC;QAC3D,CAAC;QAED,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,KAAK,KAAK,KAAK;YAC1B,CAAC,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,EAAE,gBAAgB,CAAC;YAC5G,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAEvD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACzB,EAAE,CAAC,OAAO,CAAC,eAAe,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;QAC7C,CAAC;QAED,OAAO;YACH,OAAO,EAAE,CAAC;oBACN,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,YAAY,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,2BAA2B,UAAU,CAAC,CAAC,CAAC,oBAAoB,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;iBACtH,CAAC;SACL,CAAC;IACN,CAAC,CACJ,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"compaction.js","sourceRoot":"","sources":["../../src/tools/compaction.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"conventions.d.ts","sourceRoot":"","sources":["../../src/tools/conventions.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMpE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAiI/D"}
1
+ {"version":3,"file":"conventions.d.ts","sourceRoot":"","sources":["../../src/tools/conventions.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOpE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAuH/D"}