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
@@ -5,12 +5,13 @@ import fs from "fs";
5
5
  import path from "path";
6
6
  import readline from "readline";
7
7
  import { IDE_CONFIGS } from "./ide-configs.js";
8
- import { addToConfig, removeFromConfig, makeEngramEntry } from "./config-writer.js";
8
+ import { addToConfig, removeFromConfig, makeEngramEntry, readJson, getInstallerVersion } from "./config-writer.js";
9
9
  import { detectCurrentIde } from "./ide-detector.js";
10
10
  // ─── Helpers ─────────────────────────────────────────────────────────
11
11
  function isTTY() {
12
12
  return !!(process.stdin.isTTY && process.stdout.isTTY);
13
13
  }
14
+ // Version reading is handled by getInstallerVersion() from config-writer.ts
14
15
  async function askQuestion(query) {
15
16
  if (!isTTY()) {
16
17
  // Non-interactive: return empty to use defaults
@@ -28,23 +29,143 @@ async function askQuestion(query) {
28
29
  // ─── Main Entry Point ────────────────────────────────────────────────
29
30
  export async function runInstaller(args) {
30
31
  const nonInteractive = args.includes("--yes") || args.includes("-y") || !isTTY();
32
+ // ─── --version ───────────────────────────────────────────────────
33
+ if (args.includes("--version") || args.includes("-v")) {
34
+ console.log(`engram-mcp-server v${getInstallerVersion()}`);
35
+ process.exit(0);
36
+ }
37
+ // ─── --help ──────────────────────────────────────────────────────
38
+ if (args.includes("--help") || args.includes("-h")) {
39
+ const ideNames = Object.keys(IDE_CONFIGS).join(", ");
40
+ console.log(`
41
+ Engram MCP Installer v${getInstallerVersion()}
42
+
43
+ Usage:
44
+ engram install [options]
45
+ npx -y engram-mcp-server install [options]
46
+
47
+ Options:
48
+ --ide <name> Install for a specific IDE
49
+ --yes, -y Non-interactive mode (requires --ide if no IDE is detected)
50
+ --remove Remove Engram from an IDE config (requires --ide)
51
+ --list Show all supported IDEs and their detection/install status
52
+ --check Show installed version per IDE and latest available on npm
53
+ --version Show version number
54
+ --help, -h Show this help
55
+
56
+ Supported IDEs:
57
+ ${ideNames}
58
+
59
+ Examples:
60
+ engram install Auto-detect IDE, install interactively
61
+ engram install --ide vscode Install for VS Code
62
+ engram install --ide claudecode --yes Non-interactive install for Claude Code
63
+ engram install --remove --ide cursor Remove Engram from Cursor
64
+ engram install --list Show IDE detection and install status
65
+ `);
66
+ process.exit(0);
67
+ }
31
68
  // ─── --list ──────────────────────────────────────────────────────
32
69
  if (args.includes("--list")) {
33
70
  console.log("\nEngram can be auto-installed into these IDEs:\n");
34
71
  for (const [id, ide] of Object.entries(IDE_CONFIGS)) {
35
- let found = false;
72
+ let detected = false;
73
+ let installed = false;
36
74
  if (ide.scopes.global) {
37
- found = !!ide.scopes.global.find(p => fs.existsSync(p) || fs.existsSync(path.dirname(p)));
75
+ const foundPath = ide.scopes.global.find(p => fs.existsSync(p));
76
+ if (foundPath) {
77
+ detected = true;
78
+ const config = readJson(foundPath);
79
+ if (config?.[ide.configKey]?.engram)
80
+ installed = true;
81
+ }
82
+ else if (ide.scopes.global.find(p => fs.existsSync(path.dirname(p)))) {
83
+ detected = true;
84
+ }
38
85
  }
39
86
  const scopeLabel = ide.scopes.localDirs ? " (Global / Local)" : " (Global)";
40
- const statusLabel = found ? "✅ detected" : "❌ not found";
41
- console.log(` ${id.padEnd(15)} ${ide.name}${scopeLabel} ${statusLabel}`);
87
+ const statusLabel = installed
88
+ ? "✅ installed"
89
+ : detected
90
+ ? "⬜ detected, not installed"
91
+ : "❌ not found";
92
+ console.log(` ${id.padEnd(15)} ${ide.name}${scopeLabel} ${statusLabel}`);
42
93
  }
43
- // Also show the correct JSON for manual install
44
94
  console.log("\n For manual setup, the Engram entry looks like:");
45
95
  console.log(` ${JSON.stringify(makeEngramEntry(IDE_CONFIGS.cursor), null, 2).replace(/\n/g, "\n ")}`);
46
96
  process.exit(0);
47
97
  }
98
+ // ─── --check ─────────────────────────────────────────────────────
99
+ if (args.includes("--check")) {
100
+ const currentVersion = getInstallerVersion();
101
+ console.log(`\nEngram Version Check\n`);
102
+ console.log(` Running version : v${currentVersion}`);
103
+ console.log(`\n IDE Configurations:\n`);
104
+ for (const [id, ide] of Object.entries(IDE_CONFIGS)) {
105
+ if (!ide.scopes.global)
106
+ continue;
107
+ const foundPath = ide.scopes.global.find(p => fs.existsSync(p));
108
+ if (!foundPath) {
109
+ console.log(` ${id.padEnd(14)} (not detected)`);
110
+ continue;
111
+ }
112
+ const config = readJson(foundPath);
113
+ const entry = config?.[ide.configKey]?.engram;
114
+ if (!entry) {
115
+ console.log(` ${id.padEnd(14)} ${foundPath}`);
116
+ console.log(` ${"".padEnd(14)} Not installed`);
117
+ }
118
+ else {
119
+ const installedVersion = entry._engram_version || "unknown (pre-tracking)";
120
+ const isMatch = installedVersion === currentVersion;
121
+ const statusIcon = isMatch ? "✅" : "⬆";
122
+ const statusLabel = isMatch ? "up to date" : `update available (v${currentVersion})`;
123
+ console.log(` ${id.padEnd(14)} ${foundPath}`);
124
+ console.log(` ${"".padEnd(14)} Installed: v${installedVersion} ${statusIcon} ${statusLabel}`);
125
+ }
126
+ console.log();
127
+ }
128
+ // Fetch npm latest for comparison
129
+ process.stdout.write(" npm latest : checking...");
130
+ try {
131
+ const controller = new AbortController();
132
+ const timer = setTimeout(() => controller.abort(), 5_000);
133
+ const res = await fetch("https://registry.npmjs.org/engram-mcp-server/latest", {
134
+ signal: controller.signal,
135
+ headers: { "User-Agent": "engram-mcp-server" },
136
+ });
137
+ clearTimeout(timer);
138
+ if (res.ok) {
139
+ const data = await res.json();
140
+ const npmLatest = data["version"];
141
+ const semverCmp = (a, b) => {
142
+ const pa = a.split(".").map(Number), pb = b.split(".").map(Number);
143
+ for (let i = 0; i < 3; i++) {
144
+ const d = (pa[i] ?? 0) - (pb[i] ?? 0);
145
+ if (d !== 0)
146
+ return d;
147
+ }
148
+ return 0;
149
+ };
150
+ const cmp = semverCmp(currentVersion, npmLatest);
151
+ const label = cmp === 0
152
+ ? "✅ up to date"
153
+ : cmp > 0
154
+ ? `⚡ running pre-release (v${currentVersion} > npm v${npmLatest})`
155
+ : `⬆ npm has v${npmLatest} — run: npx -y engram-mcp-server install`;
156
+ process.stdout.write(`\r npm latest : v${npmLatest} ${label}\n`);
157
+ }
158
+ else {
159
+ process.stdout.write(`\r npm latest : (registry unreachable)\n`);
160
+ }
161
+ }
162
+ catch {
163
+ process.stdout.write(`\r npm latest : (network error — check manually)\n`);
164
+ }
165
+ console.log(`\n To update: npx -y engram-mcp-server install`);
166
+ console.log(` Releases : https://github.com/keggan-std/Engram/releases\n`);
167
+ process.exit(0);
168
+ }
48
169
  // ─── --remove ────────────────────────────────────────────────────
49
170
  if (args.includes("--remove") || args.includes("--uninstall")) {
50
171
  const ideFlagIdx = args.indexOf("--ide");
@@ -100,8 +221,12 @@ export async function runInstaller(args) {
100
221
  console.log("");
101
222
  }
102
223
  else if (nonInteractive) {
103
- console.error("Could not auto-detect IDE. Use --ide <name> for non-interactive install.");
104
- console.error(`Available: ${Object.keys(IDE_CONFIGS).join(", ")}`);
224
+ console.error("Could not auto-detect your IDE in non-interactive mode.");
225
+ console.error("\n Specify your IDE with --ide <name>. Examples:");
226
+ for (const key of Object.keys(IDE_CONFIGS)) {
227
+ console.error(` engram install --ide ${key}`);
228
+ }
229
+ console.error("\n Run 'engram install --list' to see detection status.");
105
230
  process.exit(1);
106
231
  }
107
232
  // Interactive menu
@@ -158,8 +283,11 @@ async function performInstallationForIde(id, ide, nonInteractive) {
158
283
  // Show CLI hint for IDEs that support native CLI install
159
284
  if (ide.scopes.cli) {
160
285
  const entryJson = JSON.stringify(makeEngramEntry(ide));
286
+ const quotedEntry = process.platform === "win32"
287
+ ? `"${entryJson.replace(/"/g, '\\"')}"`
288
+ : `'${entryJson}'`;
161
289
  console.log(`\n💡 ${ide.name} also supports native CLI install:`);
162
- console.log(` ${ide.scopes.cli} --scope=user engram '${entryJson}'`);
290
+ console.log(` ${ide.scopes.cli} --scope=user engram ${quotedEntry}`);
163
291
  }
164
292
  let targetScope = "global";
165
293
  if (supportsLocal && supportsGlobal && !nonInteractive) {
@@ -189,16 +317,14 @@ async function performInstallationForIde(id, ide, nonInteractive) {
189
317
  await installToPath(configPath, ide);
190
318
  }
191
319
  else {
192
- const solutionDir = await askQuestion(`Enter the absolute path to your ${ide.name} project directory:\n> `);
193
- if (!solutionDir.trim()) {
194
- console.log(`Skipping ${ide.name} local installation (no path provided).`);
195
- return;
196
- }
320
+ const cwd = process.cwd();
321
+ const solutionDir = await askQuestion(`Enter the absolute path to your ${ide.name} project directory:\n [${cwd}]: `);
322
+ const resolvedDir = solutionDir.trim() || cwd;
197
323
  const localDirPrefix = ide.scopes.localDirs[0];
198
324
  let configFileName = "mcp.json";
199
325
  if (localDirPrefix === "")
200
326
  configFileName = ".mcp.json";
201
- const configPath = path.join(solutionDir.trim(), localDirPrefix, configFileName);
327
+ const configPath = path.join(resolvedDir, localDirPrefix, configFileName);
202
328
  await installToPath(configPath, ide);
203
329
  }
204
330
  }
@@ -209,16 +335,23 @@ async function performInstallationForIde(id, ide, nonInteractive) {
209
335
  async function installToPath(configPath, ide) {
210
336
  try {
211
337
  const result = addToConfig(configPath, ide);
338
+ const currentVersion = getInstallerVersion();
212
339
  console.log(`\n ✅ ${ide.name}`);
213
- console.log(` Config: ${configPath}`);
340
+ console.log(` Config : ${configPath}`);
214
341
  let statusText = "";
215
- if (result === "added")
216
- statusText = "Engram added successfully";
217
- else if (result === "updated")
218
- statusText = "Engram config updated (was outdated)";
219
- else if (result === "exists")
220
- statusText = "Engram already installed and up to date";
221
- console.log(` Status: ${statusText}`);
342
+ if (result === "added") {
343
+ statusText = `Engram v${currentVersion} installed successfully`;
344
+ }
345
+ else if (result === "upgraded") {
346
+ statusText = `Upgraded to v${currentVersion}`;
347
+ }
348
+ else if (result === "legacy-upgraded") {
349
+ statusText = `Found existing install (version unknown — pre-tracking era). Stamped as v${currentVersion}`;
350
+ }
351
+ else if (result === "exists") {
352
+ statusText = `Already installed at v${currentVersion} — nothing to do`;
353
+ }
354
+ console.log(` Status : ${statusText}`);
222
355
  }
223
356
  catch (e) {
224
357
  console.log(`\n ⚠️ ${ide.name}`);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/installer/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/installer/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"changes.repo.d.ts","sourceRoot":"","sources":["../../src/repositories/changes.repo.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,qBAAa,WAAW;IACR,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,YAAY;IAEpC,UAAU,CACN,OAAO,EAAE,KAAK,CAAC;QACX,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,YAAY,EAAE,MAAM,CAAC;KACxB,CAAC,EACF,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,SAAS,EAAE,MAAM,GAClB,MAAM;IAqBT,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE;IAMvD,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE;IAMxC,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IAMvG,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IAM3G,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAM5E,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAM3C,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IAMjF,QAAQ,IAAI,MAAM;IAIlB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAMzC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;CAK9C"}
1
+ {"version":3,"file":"changes.repo.d.ts","sourceRoot":"","sources":["../../src/repositories/changes.repo.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG7C,qBAAa,WAAW;IACR,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,YAAY;IAEpC,UAAU,CACN,OAAO,EAAE,KAAK,CAAC;QACX,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,YAAY,EAAE,MAAM,CAAC;KACxB,CAAC,EACF,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,SAAS,EAAE,MAAM,GAClB,MAAM;IAsBT,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE;IAMvD,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE;IAMxC,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IAMvG,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IAM3G,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAM5E,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAM3C,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IAMjF,QAAQ,IAAI,MAAM;IAIlB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAMzC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;CAK9C"}
@@ -1,6 +1,7 @@
1
1
  // ============================================================================
2
2
  // Engram MCP Server — Changes Repository
3
3
  // ============================================================================
4
+ import { normalizePath } from "../utils.js";
4
5
  export class ChangesRepo {
5
6
  db;
6
7
  constructor(db) {
@@ -10,9 +11,10 @@ export class ChangesRepo {
10
11
  const insert = this.db.prepare("INSERT INTO changes (session_id, timestamp, file_path, change_type, description, diff_summary, impact_scope) VALUES (?, ?, ?, ?, ?, ?, ?)");
11
12
  const tx = this.db.transaction(() => {
12
13
  for (const c of changes) {
13
- insert.run(sessionId, timestamp, c.file_path, c.change_type, c.description, c.diff_summary || null, c.impact_scope);
14
+ const fp = normalizePath(c.file_path);
15
+ insert.run(sessionId, timestamp, fp, c.change_type, c.description, c.diff_summary || null, c.impact_scope);
14
16
  if (sessionId) {
15
- this.db.prepare("UPDATE file_notes SET last_modified_session = ? WHERE file_path = ?").run(sessionId, c.file_path);
17
+ this.db.prepare("UPDATE file_notes SET last_modified_session = ? WHERE file_path = ?").run(sessionId, fp);
16
18
  }
17
19
  }
18
20
  });
@@ -20,7 +22,7 @@ export class ChangesRepo {
20
22
  return changes.length;
21
23
  }
22
24
  getByFile(filePath, limit) {
23
- return this.db.prepare("SELECT * FROM changes WHERE file_path = ? ORDER BY timestamp DESC LIMIT ?").all(filePath, limit);
25
+ return this.db.prepare("SELECT * FROM changes WHERE file_path = ? ORDER BY timestamp DESC LIMIT ?").all(normalizePath(filePath), limit);
24
26
  }
25
27
  getSince(timestamp) {
26
28
  return this.db.prepare("SELECT * FROM changes WHERE timestamp > ? ORDER BY timestamp").all(timestamp);
@@ -1 +1 @@
1
- {"version":3,"file":"changes.repo.js","sourceRoot":"","sources":["../../src/repositories/changes.repo.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,yCAAyC;AACzC,+EAA+E;AAK/E,MAAM,OAAO,WAAW;IACA;IAApB,YAAoB,EAAgB;QAAhB,OAAE,GAAF,EAAE,CAAc;IAAI,CAAC;IAEzC,UAAU,CACN,OAME,EACF,SAAwB,EACxB,SAAiB;QAEjB,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC1B,2IAA2I,CAC9I,CAAC;QAEF,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;YAChC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACtB,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,YAAY,IAAI,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC;gBAEpH,IAAI,SAAS,EAAE,CAAC;oBACZ,IAAI,CAAC,EAAE,CAAC,OAAO,CACX,qEAAqE,CACxE,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;gBAClC,CAAC;YACL,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,EAAE,CAAC;QACL,OAAO,OAAO,CAAC,MAAM,CAAC;IAC1B,CAAC;IAED,SAAS,CAAC,QAAgB,EAAE,KAAa;QACrC,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAClB,2EAA2E,CAC9E,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAgB,CAAC;IAC1C,CAAC;IAED,QAAQ,CAAC,SAAiB;QACtB,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAClB,8DAA8D,CACjE,CAAC,GAAG,CAAC,SAAS,CAAgB,CAAC;IACpC,CAAC;IAED,YAAY,CAAC,SAAiB;QAC1B,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAClB,6GAA6G,CAChH,CAAC,GAAG,CAAC,SAAS,CAA2E,CAAC;IAC/F,CAAC;IAED,gBAAgB,CAAC,SAAiB;QAC9B,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAClB,8EAA8E,CACjF,CAAC,GAAG,CAAC,SAAS,CAA2E,CAAC;IAC/F,CAAC;IAED,eAAe,CAAC,SAAiB,EAAE,SAAiB,EAAE,OAAe;QACjE,IAAI,CAAC,EAAE,CAAC,OAAO,CACX,0HAA0H,CAC7H,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC9E,CAAC;IAED,kBAAkB,CAAC,SAAiB;QAChC,IAAI,CAAC,EAAE,CAAC,OAAO,CACX,yEAAyE,CAC5E,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACrB,CAAC;IAED,cAAc,CAAC,KAAa;QACxB,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAClB,+GAA+G,CAClH,CAAC,GAAG,CAAC,KAAK,CAAuD,CAAC;IACvE,CAAC;IAED,QAAQ;QACJ,OAAQ,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC,GAAG,EAAoB,CAAC,CAAC,CAAC;IAC3F,CAAC;IAED,cAAc,CAAC,SAAiB;QAC5B,OAAQ,IAAI,CAAC,EAAE,CAAC,OAAO,CACnB,wDAAwD,CAC3D,CAAC,GAAG,CAAC,SAAS,CAAmB,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,iBAAiB,CAAC,QAAgB;QAC9B,OAAQ,IAAI,CAAC,EAAE,CAAC,OAAO,CACnB,yDAAyD,CAC5D,CAAC,GAAG,CAAC,QAAQ,CAAmB,CAAC,CAAC,CAAC;IACxC,CAAC;CACJ"}
1
+ {"version":3,"file":"changes.repo.js","sourceRoot":"","sources":["../../src/repositories/changes.repo.ts"],"names":[],"mappings":"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"}
@@ -7,5 +7,10 @@ export declare class ConfigRepo {
7
7
  getInt(key: string, defaultValue: number): number;
8
8
  getBool(key: string, defaultValue: boolean): boolean;
9
9
  set(key: string, value: string, timestamp: string): void;
10
+ getAll(): Array<{
11
+ key: string;
12
+ value: string;
13
+ updated_at: string;
14
+ }>;
10
15
  }
11
16
  //# sourceMappingURL=config.repo.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.repo.d.ts","sourceRoot":"","sources":["../../src/repositories/config.repo.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE/D,qBAAa,UAAU;IACP,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,YAAY;IAEpC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAW/B,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM;IAIvD,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM;IAOjD,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,GAAG,OAAO;IAMpD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;CAK3D"}
1
+ {"version":3,"file":"config.repo.d.ts","sourceRoot":"","sources":["../../src/repositories/config.repo.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE/D,qBAAa,UAAU;IACP,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,YAAY;IAEpC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAW/B,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM;IAIvD,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM;IAOjD,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,GAAG,OAAO;IAMpD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAMxD,MAAM,IAAI,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;CAStE"}
@@ -34,5 +34,13 @@ export class ConfigRepo {
34
34
  set(key, value, timestamp) {
35
35
  this.db.prepare("INSERT OR REPLACE INTO config (key, value, updated_at) VALUES (?, ?, ?)").run(key, value, timestamp);
36
36
  }
37
+ getAll() {
38
+ try {
39
+ return this.db.prepare("SELECT key, value, updated_at FROM config ORDER BY key").all();
40
+ }
41
+ catch {
42
+ return [];
43
+ }
44
+ }
37
45
  }
38
46
  //# sourceMappingURL=config.repo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.repo.js","sourceRoot":"","sources":["../../src/repositories/config.repo.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,wCAAwC;AACxC,+EAA+E;AAI/E,MAAM,OAAO,UAAU;IACC;IAApB,YAAoB,EAAgB;QAAhB,OAAE,GAAF,EAAE,CAAc;IAAI,CAAC;IAEzC,GAAG,CAAC,GAAW;QACX,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CACvB,wCAAwC,CAC3C,CAAC,GAAG,CAAC,GAAG,CAAkC,CAAC;YAC5C,OAAO,GAAG,EAAE,KAAK,IAAI,IAAI,CAAC;QAC9B,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,IAAI,CAAC,CAAC,iCAAiC;QAClD,CAAC;IACL,CAAC;IAED,YAAY,CAAC,GAAW,EAAE,YAAoB;QAC1C,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,GAAW,EAAE,YAAoB;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO,YAAY,CAAC;QACtC,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACjC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC;IACjD,CAAC;IAED,OAAO,CAAC,GAAW,EAAE,YAAqB;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO,YAAY,CAAC;QACtC,OAAO,GAAG,KAAK,MAAM,CAAC;IAC1B,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,KAAa,EAAE,SAAiB;QAC7C,IAAI,CAAC,EAAE,CAAC,OAAO,CACX,yEAAyE,CAC5E,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IACjC,CAAC;CACJ"}
1
+ {"version":3,"file":"config.repo.js","sourceRoot":"","sources":["../../src/repositories/config.repo.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,wCAAwC;AACxC,+EAA+E;AAI/E,MAAM,OAAO,UAAU;IACC;IAApB,YAAoB,EAAgB;QAAhB,OAAE,GAAF,EAAE,CAAc;IAAI,CAAC;IAEzC,GAAG,CAAC,GAAW;QACX,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CACvB,wCAAwC,CAC3C,CAAC,GAAG,CAAC,GAAG,CAAkC,CAAC;YAC5C,OAAO,GAAG,EAAE,KAAK,IAAI,IAAI,CAAC;QAC9B,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,IAAI,CAAC,CAAC,iCAAiC;QAClD,CAAC;IACL,CAAC;IAED,YAAY,CAAC,GAAW,EAAE,YAAoB;QAC1C,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,GAAW,EAAE,YAAoB;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO,YAAY,CAAC;QACtC,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACjC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC;IACjD,CAAC;IAED,OAAO,CAAC,GAAW,EAAE,YAAqB;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO,YAAY,CAAC;QACtC,OAAO,GAAG,KAAK,MAAM,CAAC;IAC1B,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,KAAa,EAAE,SAAiB;QAC7C,IAAI,CAAC,EAAE,CAAC,OAAO,CACX,yEAAyE,CAC5E,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IACjC,CAAC;IAED,MAAM;QACF,IAAI,CAAC;YACD,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAClB,wDAAwD,CAC3D,CAAC,GAAG,EAA+D,CAAC;QACzE,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,EAAE,CAAC;QACd,CAAC;IACL,CAAC;CACJ"}
@@ -14,6 +14,14 @@ export declare class DecisionsRepo {
14
14
  limit: number;
15
15
  }): DecisionRow[];
16
16
  getByFile(filePath: string): DecisionRow[];
17
+ createBatch(decisions: Array<{
18
+ decision: string;
19
+ rationale?: string | null;
20
+ affected_files?: string[] | null;
21
+ tags?: string[] | null;
22
+ status?: string;
23
+ }>, sessionId: number | null, timestamp: string): number[];
24
+ findSimilar(decisionText: string, limit?: number): DecisionRow[];
17
25
  countAll(): number;
18
26
  }
19
27
  //# sourceMappingURL=decisions.repo.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"decisions.repo.d.ts","sourceRoot":"","sources":["../../src/repositories/decisions.repo.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,qBAAa,aAAa;IACV,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,YAAY;IAEpC,MAAM,CACF,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,EACzB,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,EAC/B,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,EACtB,MAAM,GAAE,MAAiB,EACzB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GAC3B,MAAM;IAcT,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAM7C,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAMhD,SAAS,CAAC,KAAK,GAAE,MAAW,GAAG,WAAW,EAAE;IAM5C,WAAW,CAAC,OAAO,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,WAAW,EAAE;IAczG,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,EAAE;IAM1C,QAAQ,IAAI,MAAM;CAGrB"}
1
+ {"version":3,"file":"decisions.repo.d.ts","sourceRoot":"","sources":["../../src/repositories/decisions.repo.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,qBAAa,aAAa;IACV,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,YAAY;IAEpC,MAAM,CACF,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,EACzB,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,EAC/B,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,EACtB,MAAM,GAAE,MAAiB,EACzB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GAC3B,MAAM;IAcT,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAM7C,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAMhD,SAAS,CAAC,KAAK,GAAE,MAAW,GAAG,WAAW,EAAE;IAM5C,WAAW,CAAC,OAAO,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,WAAW,EAAE;IAczG,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,EAAE;IAM1C,WAAW,CACP,SAAS,EAAE,KAAK,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACvB,MAAM,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC,EACF,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,SAAS,EAAE,MAAM,GAClB,MAAM,EAAE;IAqBX,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,WAAW,EAAE;IAiBnE,QAAQ,IAAI,MAAM;CAGrB"}
@@ -41,6 +41,29 @@ export class DecisionsRepo {
41
41
  getByFile(filePath) {
42
42
  return this.db.prepare("SELECT * FROM decisions WHERE affected_files LIKE ? AND status = 'active' ORDER BY timestamp DESC").all(`%${filePath}%`);
43
43
  }
44
+ createBatch(decisions, sessionId, timestamp) {
45
+ const ids = [];
46
+ const tx = this.db.transaction(() => {
47
+ for (const d of decisions) {
48
+ const result = this.db.prepare("INSERT INTO decisions (session_id, timestamp, decision, rationale, affected_files, tags, status, superseded_by) VALUES (?, ?, ?, ?, ?, ?, ?, ?)").run(sessionId, timestamp, d.decision, d.rationale || null, d.affected_files ? JSON.stringify(d.affected_files) : null, d.tags ? JSON.stringify(d.tags) : null, d.status || "active", null);
49
+ ids.push(result.lastInsertRowid);
50
+ }
51
+ });
52
+ tx();
53
+ return ids;
54
+ }
55
+ findSimilar(decisionText, limit = 5) {
56
+ const words = decisionText
57
+ .split(/\s+/)
58
+ .filter(w => w.length > 3)
59
+ .slice(0, 5);
60
+ if (words.length === 0)
61
+ return [];
62
+ const conditions = words.map(() => "decision LIKE ?");
63
+ const params = words.map(w => `%${w}%`);
64
+ params.push(limit);
65
+ return this.db.prepare(`SELECT * FROM decisions WHERE status = 'active' AND (${conditions.join(" OR ")}) ORDER BY timestamp DESC LIMIT ?`).all(...params);
66
+ }
44
67
  countAll() {
45
68
  return this.db.prepare("SELECT COUNT(*) as c FROM decisions").get().c;
46
69
  }
@@ -1 +1 @@
1
- {"version":3,"file":"decisions.repo.js","sourceRoot":"","sources":["../../src/repositories/decisions.repo.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,2CAA2C;AAC3C,+EAA+E;AAK/E,MAAM,OAAO,aAAa;IACF;IAApB,YAAoB,EAAgB;QAAhB,OAAE,GAAF,EAAE,CAAc;IAAI,CAAC;IAEzC,MAAM,CACF,SAAwB,EACxB,SAAiB,EACjB,QAAgB,EAChB,SAAyB,EACzB,aAA+B,EAC/B,IAAsB,EACtB,SAAiB,QAAQ,EACzB,UAA0B;QAE1B,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC1B,iJAAiJ,CACpJ,CAAC,GAAG,CACD,SAAS,EAAE,SAAS,EAAE,QAAQ,EAC9B,SAAS,IAAI,IAAI,EACjB,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,EACpD,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAClC,MAAM,EACN,UAAU,IAAI,IAAI,CACrB,CAAC;QACF,OAAO,MAAM,CAAC,eAAyB,CAAC;IAC5C,CAAC;IAED,SAAS,CAAC,KAAa,EAAE,KAAa;QAClC,IAAI,CAAC,EAAE,CAAC,OAAO,CACX,4EAA4E,CAC/E,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACxB,CAAC;IAED,YAAY,CAAC,EAAU,EAAE,MAAc;QACnC,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAClB,8CAA8C,CACjD,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC;IAC9B,CAAC;IAED,SAAS,CAAC,QAAgB,EAAE;QACxB,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAClB,iFAAiF,CACpF,CAAC,GAAG,CAAC,KAAK,CAAkB,CAAC;IAClC,CAAC;IAED,WAAW,CAAC,OAA6E;QACrF,IAAI,KAAK,GAAG,mCAAmC,CAAC;QAChD,MAAM,MAAM,GAAc,EAAE,CAAC;QAE7B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YAAC,KAAK,IAAI,iBAAiB,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAAC,CAAC;QAChF,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YAAC,KAAK,IAAI,6DAA6D,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAAC,CAAC;QACtH,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YAAC,KAAK,IAAI,uEAAuE,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAAC,CAAC;QAE5I,KAAK,IAAI,kCAAkC,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAE3B,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAkB,CAAC;IAClE,CAAC;IAED,SAAS,CAAC,QAAgB;QACtB,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAClB,mGAAmG,CACtG,CAAC,GAAG,CAAC,IAAI,QAAQ,GAAG,CAAkB,CAAC;IAC5C,CAAC;IAED,QAAQ;QACJ,OAAQ,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC,GAAG,EAAoB,CAAC,CAAC,CAAC;IAC7F,CAAC;CACJ"}
1
+ {"version":3,"file":"decisions.repo.js","sourceRoot":"","sources":["../../src/repositories/decisions.repo.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,2CAA2C;AAC3C,+EAA+E;AAK/E,MAAM,OAAO,aAAa;IACF;IAApB,YAAoB,EAAgB;QAAhB,OAAE,GAAF,EAAE,CAAc;IAAI,CAAC;IAEzC,MAAM,CACF,SAAwB,EACxB,SAAiB,EACjB,QAAgB,EAChB,SAAyB,EACzB,aAA+B,EAC/B,IAAsB,EACtB,SAAiB,QAAQ,EACzB,UAA0B;QAE1B,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC1B,iJAAiJ,CACpJ,CAAC,GAAG,CACD,SAAS,EAAE,SAAS,EAAE,QAAQ,EAC9B,SAAS,IAAI,IAAI,EACjB,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,EACpD,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAClC,MAAM,EACN,UAAU,IAAI,IAAI,CACrB,CAAC;QACF,OAAO,MAAM,CAAC,eAAyB,CAAC;IAC5C,CAAC;IAED,SAAS,CAAC,KAAa,EAAE,KAAa;QAClC,IAAI,CAAC,EAAE,CAAC,OAAO,CACX,4EAA4E,CAC/E,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACxB,CAAC;IAED,YAAY,CAAC,EAAU,EAAE,MAAc;QACnC,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAClB,8CAA8C,CACjD,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC;IAC9B,CAAC;IAED,SAAS,CAAC,QAAgB,EAAE;QACxB,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAClB,iFAAiF,CACpF,CAAC,GAAG,CAAC,KAAK,CAAkB,CAAC;IAClC,CAAC;IAED,WAAW,CAAC,OAA6E;QACrF,IAAI,KAAK,GAAG,mCAAmC,CAAC;QAChD,MAAM,MAAM,GAAc,EAAE,CAAC;QAE7B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YAAC,KAAK,IAAI,iBAAiB,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAAC,CAAC;QAChF,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YAAC,KAAK,IAAI,6DAA6D,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAAC,CAAC;QACtH,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YAAC,KAAK,IAAI,uEAAuE,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAAC,CAAC;QAE5I,KAAK,IAAI,kCAAkC,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAE3B,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAkB,CAAC;IAClE,CAAC;IAED,SAAS,CAAC,QAAgB;QACtB,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAClB,mGAAmG,CACtG,CAAC,GAAG,CAAC,IAAI,QAAQ,GAAG,CAAkB,CAAC;IAC5C,CAAC;IAED,WAAW,CACP,SAME,EACF,SAAwB,EACxB,SAAiB;QAEjB,MAAM,GAAG,GAAa,EAAE,CAAC;QACzB,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;YAChC,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;gBACxB,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC1B,iJAAiJ,CACpJ,CAAC,GAAG,CACD,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,QAAQ,EAChC,CAAC,CAAC,SAAS,IAAI,IAAI,EACnB,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,EAC1D,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EACtC,CAAC,CAAC,MAAM,IAAI,QAAQ,EACpB,IAAI,CACP,CAAC;gBACF,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,eAAyB,CAAC,CAAC;YAC/C,CAAC;QACL,CAAC,CAAC,CAAC;QACH,EAAE,EAAE,CAAC;QACL,OAAO,GAAG,CAAC;IACf,CAAC;IAED,WAAW,CAAC,YAAoB,EAAE,QAAgB,CAAC;QAC/C,MAAM,KAAK,GAAG,YAAY;aACrB,KAAK,CAAC,KAAK,CAAC;aACZ,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;aACzB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEjB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAElC,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,CAAC;QACtD,MAAM,MAAM,GAAc,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEnB,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAClB,wDAAwD,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,mCAAmC,CACrH,CAAC,GAAG,CAAC,GAAG,MAAM,CAAkB,CAAC;IACtC,CAAC;IAED,QAAQ;QACJ,OAAQ,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC,GAAG,EAAoB,CAAC,CAAC,CAAC;IAC7F,CAAC;CACJ"}
@@ -11,6 +11,15 @@ export declare class FileNotesRepo {
11
11
  complexity?: string | null;
12
12
  notes?: string | null;
13
13
  }): void;
14
+ upsertBatch(entries: Array<{
15
+ file_path: string;
16
+ purpose?: string | null;
17
+ dependencies?: string[] | null;
18
+ dependents?: string[] | null;
19
+ layer?: string | null;
20
+ complexity?: string | null;
21
+ notes?: string | null;
22
+ }>, timestamp: string, sessionId: number | null): number;
14
23
  getByPath(filePath: string): FileNoteRow | null;
15
24
  getFiltered(filters: {
16
25
  layer?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"file-notes.repo.d.ts","sourceRoot":"","sources":["../../src/repositories/file-notes.repo.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,qBAAa,aAAa;IACV,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,YAAY;IAEpC,MAAM,CACF,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,IAAI,EAAE;QACF,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAC/B,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAC7B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACzB,GACF,IAAI;IA4BP,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAM/C,WAAW,CAAC,OAAO,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,WAAW,EAAE;IAW5E,MAAM,IAAI,WAAW,EAAE;IAIvB,QAAQ,IAAI,MAAM;IAIlB,oBAAoB,IAAI,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAKlE"}
1
+ {"version":3,"file":"file-notes.repo.d.ts","sourceRoot":"","sources":["../../src/repositories/file-notes.repo.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG/C,qBAAa,aAAa;IACV,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,YAAY;IAEpC,MAAM,CACF,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,IAAI,EAAE;QACF,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAC/B,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAC7B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACzB,GACF,IAAI;IA6BP,WAAW,CACP,OAAO,EAAE,KAAK,CAAC;QACX,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAC/B,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAC7B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACzB,CAAC,EACF,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAAG,IAAI,GACzB,MAAM;IAiBT,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAM/C,WAAW,CAAC,OAAO,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,WAAW,EAAE;IAW5E,MAAM,IAAI,WAAW,EAAE;IAIvB,QAAQ,IAAI,MAAM;IAIlB,oBAAoB,IAAI,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAKlE"}
@@ -1,14 +1,16 @@
1
1
  // ============================================================================
2
2
  // Engram MCP Server — File Notes Repository
3
3
  // ============================================================================
4
+ import { normalizePath } from "../utils.js";
4
5
  export class FileNotesRepo {
5
6
  db;
6
7
  constructor(db) {
7
8
  this.db = db;
8
9
  }
9
10
  upsert(filePath, timestamp, sessionId, data) {
10
- const deps = data.dependencies ? JSON.stringify(data.dependencies) : null;
11
- const depnts = data.dependents ? JSON.stringify(data.dependents) : null;
11
+ const normalizedPath = normalizePath(filePath);
12
+ const deps = data.dependencies ? JSON.stringify(data.dependencies.map(d => normalizePath(d))) : null;
13
+ const depnts = data.dependents ? JSON.stringify(data.dependents.map(d => normalizePath(d))) : null;
12
14
  this.db.prepare(`
13
15
  INSERT INTO file_notes (file_path, purpose, dependencies, dependents, layer, last_reviewed, last_modified_session, notes, complexity)
14
16
  VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
@@ -21,12 +23,28 @@ export class FileNotesRepo {
21
23
  last_modified_session = COALESCE(?, last_modified_session),
22
24
  notes = COALESCE(?, notes),
23
25
  complexity = COALESCE(?, complexity)
24
- `).run(filePath, data.purpose || null, deps, depnts, data.layer || null, timestamp, sessionId, data.notes || null, data.complexity || null,
26
+ `).run(normalizedPath, data.purpose || null, deps, depnts, data.layer || null, timestamp, sessionId, data.notes || null, data.complexity || null,
25
27
  // Update values
26
28
  data.purpose || null, deps, depnts, data.layer || null, timestamp, sessionId, data.notes || null, data.complexity || null);
27
29
  }
30
+ upsertBatch(entries, timestamp, sessionId) {
31
+ const tx = this.db.transaction(() => {
32
+ for (const entry of entries) {
33
+ this.upsert(entry.file_path, timestamp, sessionId, {
34
+ purpose: entry.purpose,
35
+ dependencies: entry.dependencies,
36
+ dependents: entry.dependents,
37
+ layer: entry.layer,
38
+ complexity: entry.complexity,
39
+ notes: entry.notes,
40
+ });
41
+ }
42
+ });
43
+ tx();
44
+ return entries.length;
45
+ }
28
46
  getByPath(filePath) {
29
- return this.db.prepare("SELECT * FROM file_notes WHERE file_path = ?").get(filePath) ?? null;
47
+ return this.db.prepare("SELECT * FROM file_notes WHERE file_path = ?").get(normalizePath(filePath)) ?? null;
30
48
  }
31
49
  getFiltered(filters) {
32
50
  let query = "SELECT * FROM file_notes WHERE 1=1";
@@ -1 +1 @@
1
- {"version":3,"file":"file-notes.repo.js","sourceRoot":"","sources":["../../src/repositories/file-notes.repo.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,4CAA4C;AAC5C,+EAA+E;AAK/E,MAAM,OAAO,aAAa;IACF;IAApB,YAAoB,EAAgB;QAAhB,OAAE,GAAF,EAAE,CAAc;IAAI,CAAC;IAEzC,MAAM,CACF,QAAgB,EAChB,SAAiB,EACjB,SAAwB,EACxB,IAOC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1E,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAExE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;;;;;;;KAYnB,CAAC,CAAC,GAAG,CACE,QAAQ,EACR,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE,IAAI,EAAE,MAAM,EAClC,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE,SAAS,EAAE,SAAS,EACxC,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI;QAC3C,gBAAgB;QAChB,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE,IAAI,EAAE,MAAM,EAClC,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE,SAAS,EAAE,SAAS,EACxC,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI,CAC9C,CAAC;IACN,CAAC;IAED,SAAS,CAAC,QAAgB;QACtB,OAAQ,IAAI,CAAC,EAAE,CAAC,OAAO,CACnB,8CAA8C,CACjD,CAAC,GAAG,CAAC,QAAQ,CAA6B,IAAI,IAAI,CAAC;IACxD,CAAC;IAED,WAAW,CAAC,OAAgD;QACxD,IAAI,KAAK,GAAG,oCAAoC,CAAC;QACjD,MAAM,MAAM,GAAc,EAAE,CAAC;QAE7B,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAAC,KAAK,IAAI,gBAAgB,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;QAC7E,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YAAC,KAAK,IAAI,qBAAqB,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAAC,CAAC;QAC5F,KAAK,IAAI,qBAAqB,CAAC;QAE/B,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAkB,CAAC;IAClE,CAAC;IAED,MAAM;QACF,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC,GAAG,EAAmB,CAAC;IACjG,CAAC;IAED,QAAQ;QACJ,OAAQ,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC,GAAG,EAAoB,CAAC,CAAC,CAAC;IAC9F,CAAC;IAED,oBAAoB;QAChB,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAClB,4GAA4G,CAC/G,CAAC,GAAG,EAA6C,CAAC;IACvD,CAAC;CACJ"}
1
+ {"version":3,"file":"file-notes.repo.js","sourceRoot":"","sources":["../../src/repositories/file-notes.repo.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,4CAA4C;AAC5C,+EAA+E;AAI/E,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,OAAO,aAAa;IACF;IAApB,YAAoB,EAAgB;QAAhB,OAAE,GAAF,EAAE,CAAc;IAAI,CAAC;IAEzC,MAAM,CACF,QAAgB,EAChB,SAAiB,EACjB,SAAwB,EACxB,IAOC;QAED,MAAM,cAAc,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACrG,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAEnG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;;;;;;;KAYnB,CAAC,CAAC,GAAG,CACE,cAAc,EACd,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE,IAAI,EAAE,MAAM,EAClC,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE,SAAS,EAAE,SAAS,EACxC,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI;QAC3C,gBAAgB;QAChB,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE,IAAI,EAAE,MAAM,EAClC,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE,SAAS,EAAE,SAAS,EACxC,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI,CAC9C,CAAC;IACN,CAAC;IAED,WAAW,CACP,OAQE,EACF,SAAiB,EACjB,SAAwB;QAExB,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;YAChC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC1B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE;oBAC/C,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,YAAY,EAAE,KAAK,CAAC,YAAY;oBAChC,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,KAAK,EAAE,KAAK,CAAC,KAAK;iBACrB,CAAC,CAAC;YACP,CAAC;QACL,CAAC,CAAC,CAAC;QACH,EAAE,EAAE,CAAC;QACL,OAAO,OAAO,CAAC,MAAM,CAAC;IAC1B,CAAC;IAED,SAAS,CAAC,QAAgB;QACtB,OAAQ,IAAI,CAAC,EAAE,CAAC,OAAO,CACnB,8CAA8C,CACjD,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAA6B,IAAI,IAAI,CAAC;IACvE,CAAC;IAED,WAAW,CAAC,OAAgD;QACxD,IAAI,KAAK,GAAG,oCAAoC,CAAC;QACjD,MAAM,MAAM,GAAc,EAAE,CAAC;QAE7B,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAAC,KAAK,IAAI,gBAAgB,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;QAC7E,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YAAC,KAAK,IAAI,qBAAqB,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAAC,CAAC;QAC5F,KAAK,IAAI,qBAAqB,CAAC;QAE/B,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAkB,CAAC;IAClE,CAAC;IAED,MAAM;QACF,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC,GAAG,EAAmB,CAAC;IACjG,CAAC;IAED,QAAQ;QACJ,OAAQ,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC,GAAG,EAAoB,CAAC,CAAC,CAAC;IAC9F,CAAC;IAED,oBAAoB;QAChB,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAClB,4GAA4G,CAC/G,CAAC,GAAG,EAA6C,CAAC;IACvD,CAAC;CACJ"}
@@ -2,6 +2,7 @@
2
2
  * Standard MCP tool response types.
3
3
  */
4
4
  interface McpToolResponse {
5
+ [key: string]: unknown;
5
6
  content: Array<{
6
7
  type: "text";
7
8
  text: string;
@@ -1 +1 @@
1
- {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../src/response.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,UAAU,eAAe;IACrB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,eAAe,CAItE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAI3D;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAKtD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,eAAe,CAK7F"}
1
+ {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../src/response.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,UAAU,eAAe;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,eAAe,CAItE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAI3D;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAKtD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,eAAe,CAK7F"}
@@ -1 +1 @@
1
- {"version":3,"file":"response.js","sourceRoot":"","sources":["../src/response.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,uCAAuC;AACvC,+EAA+E;AAU/E;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,IAA6B;IACjD,OAAO;QACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;KACnE,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,OAAe;IACtC,OAAO;QACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;KAC7C,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,KAAK,CAAC,OAAe;IACjC,OAAO;QACH,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;KAC7C,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,OAAe,EAAE,IAA6B;IACxE,OAAO;QACH,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;KAC1F,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"response.js","sourceRoot":"","sources":["../src/response.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,uCAAuC;AACvC,+EAA+E;AAW/E;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,IAA6B;IACjD,OAAO;QACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;KACnE,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,OAAe;IACtC,OAAO;QACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;KAC7C,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,KAAK,CAAC,OAAe;IACjC,OAAO;QACH,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;KAC7C,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,OAAe,EAAE,IAA6B;IACxE,OAAO;QACH,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;KAC1F,CAAC;AACN,CAAC"}
@@ -2,4 +2,6 @@ export { CompactionService } from "./compaction.service.js";
2
2
  export { ProjectScanService } from "./project-scan.service.js";
3
3
  export { GitService } from "./git.service.js";
4
4
  export { EventTriggerService } from "./event-trigger.service.js";
5
+ export { UpdateService } from "./update.service.js";
6
+ export type { UpdateNotification } from "./update.service.js";
5
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -5,4 +5,5 @@ export { CompactionService } from "./compaction.service.js";
5
5
  export { ProjectScanService } from "./project-scan.service.js";
6
6
  export { GitService } from "./git.service.js";
7
7
  export { EventTriggerService } from "./event-trigger.service.js";
8
+ export { UpdateService } from "./update.service.js";
8
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,6CAA6C;AAC7C,+EAA+E;AAE/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,6CAA6C;AAC7C,+EAA+E;AAE/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC"}