engram-mcp-server 1.2.8 → 1.2.9

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 (210) hide show
  1. package/README.md +12 -1
  2. package/dist/constants.d.ts +1 -1
  3. package/dist/constants.d.ts.map +1 -1
  4. package/dist/constants.js +6 -1
  5. package/dist/constants.js.map +1 -1
  6. package/dist/index.js +7 -1
  7. package/dist/index.js.map +1 -1
  8. package/dist/installer/ide-detector.d.ts.map +1 -1
  9. package/dist/installer/ide-detector.js +10 -6
  10. package/dist/installer/ide-detector.js.map +1 -1
  11. package/dist/installer/index.d.ts.map +1 -1
  12. package/dist/installer/index.js +79 -15
  13. package/dist/installer/index.js.map +1 -1
  14. package/package.json +6 -3
  15. package/dist/installer.d.ts +0 -2
  16. package/dist/installer.d.ts.map +0 -1
  17. package/dist/installer.js +0 -315
  18. package/dist/installer.js.map +0 -1
  19. package/dist/src/constants.d.ts +0 -21
  20. package/dist/src/constants.d.ts.map +0 -1
  21. package/dist/src/constants.js +0 -81
  22. package/dist/src/constants.js.map +0 -1
  23. package/dist/src/database.d.ts +0 -32
  24. package/dist/src/database.d.ts.map +0 -1
  25. package/dist/src/database.js +0 -143
  26. package/dist/src/database.js.map +0 -1
  27. package/dist/src/errors.d.ts +0 -40
  28. package/dist/src/errors.d.ts.map +0 -1
  29. package/dist/src/errors.js +0 -63
  30. package/dist/src/errors.js.map +0 -1
  31. package/dist/src/index.d.ts +0 -3
  32. package/dist/src/index.d.ts.map +0 -1
  33. package/dist/src/index.js +0 -89
  34. package/dist/src/index.js.map +0 -1
  35. package/dist/src/installer/config-writer.d.ts +0 -25
  36. package/dist/src/installer/config-writer.d.ts.map +0 -1
  37. package/dist/src/installer/config-writer.js +0 -86
  38. package/dist/src/installer/config-writer.js.map +0 -1
  39. package/dist/src/installer/ide-configs.d.ts +0 -19
  40. package/dist/src/installer/ide-configs.d.ts.map +0 -1
  41. package/dist/src/installer/ide-configs.js +0 -131
  42. package/dist/src/installer/ide-configs.js.map +0 -1
  43. package/dist/src/installer/ide-detector.d.ts +0 -6
  44. package/dist/src/installer/ide-detector.d.ts.map +0 -1
  45. package/dist/src/installer/ide-detector.js +0 -45
  46. package/dist/src/installer/ide-detector.js.map +0 -1
  47. package/dist/src/installer/index.d.ts +0 -2
  48. package/dist/src/installer/index.d.ts.map +0 -1
  49. package/dist/src/installer/index.js +0 -229
  50. package/dist/src/installer/index.js.map +0 -1
  51. package/dist/src/logger.d.ts +0 -10
  52. package/dist/src/logger.d.ts.map +0 -1
  53. package/dist/src/logger.js +0 -51
  54. package/dist/src/logger.js.map +0 -1
  55. package/dist/src/migrations.d.ts +0 -4
  56. package/dist/src/migrations.d.ts.map +0 -1
  57. package/dist/src/migrations.js +0 -343
  58. package/dist/src/migrations.js.map +0 -1
  59. package/dist/src/repositories/changes.repo.d.ts +0 -35
  60. package/dist/src/repositories/changes.repo.d.ts.map +0 -1
  61. package/dist/src/repositories/changes.repo.js +0 -53
  62. package/dist/src/repositories/changes.repo.js.map +0 -1
  63. package/dist/src/repositories/config.repo.d.ts +0 -11
  64. package/dist/src/repositories/config.repo.d.ts.map +0 -1
  65. package/dist/src/repositories/config.repo.js +0 -38
  66. package/dist/src/repositories/config.repo.js.map +0 -1
  67. package/dist/src/repositories/conventions.repo.d.ts +0 -15
  68. package/dist/src/repositories/conventions.repo.d.ts.map +0 -1
  69. package/dist/src/repositories/conventions.repo.js +0 -39
  70. package/dist/src/repositories/conventions.repo.js.map +0 -1
  71. package/dist/src/repositories/decisions.repo.d.ts +0 -19
  72. package/dist/src/repositories/decisions.repo.d.ts.map +0 -1
  73. package/dist/src/repositories/decisions.repo.js +0 -48
  74. package/dist/src/repositories/decisions.repo.js.map +0 -1
  75. package/dist/src/repositories/events.repo.d.ts +0 -34
  76. package/dist/src/repositories/events.repo.d.ts.map +0 -1
  77. package/dist/src/repositories/events.repo.js +0 -71
  78. package/dist/src/repositories/events.repo.js.map +0 -1
  79. package/dist/src/repositories/file-notes.repo.d.ts +0 -26
  80. package/dist/src/repositories/file-notes.repo.d.ts.map +0 -1
  81. package/dist/src/repositories/file-notes.repo.js +0 -55
  82. package/dist/src/repositories/file-notes.repo.js.map +0 -1
  83. package/dist/src/repositories/index.d.ts +0 -38
  84. package/dist/src/repositories/index.d.ts.map +0 -1
  85. package/dist/src/repositories/index.js +0 -41
  86. package/dist/src/repositories/index.js.map +0 -1
  87. package/dist/src/repositories/milestones.repo.d.ts +0 -10
  88. package/dist/src/repositories/milestones.repo.d.ts.map +0 -1
  89. package/dist/src/repositories/milestones.repo.js +0 -20
  90. package/dist/src/repositories/milestones.repo.js.map +0 -1
  91. package/dist/src/repositories/sessions.repo.d.ts +0 -27
  92. package/dist/src/repositories/sessions.repo.d.ts.map +0 -1
  93. package/dist/src/repositories/sessions.repo.js +0 -61
  94. package/dist/src/repositories/sessions.repo.js.map +0 -1
  95. package/dist/src/repositories/snapshot.repo.d.ts +0 -11
  96. package/dist/src/repositories/snapshot.repo.d.ts.map +0 -1
  97. package/dist/src/repositories/snapshot.repo.js +0 -17
  98. package/dist/src/repositories/snapshot.repo.js.map +0 -1
  99. package/dist/src/repositories/tasks.repo.d.ts +0 -40
  100. package/dist/src/repositories/tasks.repo.d.ts.map +0 -1
  101. package/dist/src/repositories/tasks.repo.js +0 -90
  102. package/dist/src/repositories/tasks.repo.js.map +0 -1
  103. package/dist/src/response.d.ts +0 -28
  104. package/dist/src/response.d.ts.map +0 -1
  105. package/dist/src/response.js +0 -38
  106. package/dist/src/response.js.map +0 -1
  107. package/dist/src/scripts/install-hooks.d.ts +0 -3
  108. package/dist/src/scripts/install-hooks.d.ts.map +0 -1
  109. package/dist/src/scripts/install-hooks.js +0 -89
  110. package/dist/src/scripts/install-hooks.js.map +0 -1
  111. package/dist/src/services/compaction.service.d.ts +0 -27
  112. package/dist/src/services/compaction.service.d.ts.map +0 -1
  113. package/dist/src/services/compaction.service.js +0 -93
  114. package/dist/src/services/compaction.service.js.map +0 -1
  115. package/dist/src/services/event-trigger.service.d.ts +0 -24
  116. package/dist/src/services/event-trigger.service.d.ts.map +0 -1
  117. package/dist/src/services/event-trigger.service.js +0 -60
  118. package/dist/src/services/event-trigger.service.js.map +0 -1
  119. package/dist/src/services/git.service.d.ts +0 -20
  120. package/dist/src/services/git.service.d.ts.map +0 -1
  121. package/dist/src/services/git.service.js +0 -88
  122. package/dist/src/services/git.service.js.map +0 -1
  123. package/dist/src/services/index.d.ts +0 -5
  124. package/dist/src/services/index.d.ts.map +0 -1
  125. package/dist/src/services/index.js +0 -8
  126. package/dist/src/services/index.js.map +0 -1
  127. package/dist/src/services/project-scan.service.d.ts +0 -19
  128. package/dist/src/services/project-scan.service.d.ts.map +0 -1
  129. package/dist/src/services/project-scan.service.js +0 -66
  130. package/dist/src/services/project-scan.service.js.map +0 -1
  131. package/dist/src/tools/backup.d.ts +0 -3
  132. package/dist/src/tools/backup.d.ts.map +0 -1
  133. package/dist/src/tools/backup.js +0 -191
  134. package/dist/src/tools/backup.js.map +0 -1
  135. package/dist/src/tools/changes.d.ts +0 -3
  136. package/dist/src/tools/changes.d.ts.map +0 -1
  137. package/dist/src/tools/changes.js +0 -97
  138. package/dist/src/tools/changes.js.map +0 -1
  139. package/dist/src/tools/compaction.d.ts +0 -3
  140. package/dist/src/tools/compaction.d.ts.map +0 -1
  141. package/dist/src/tools/compaction.js +0 -151
  142. package/dist/src/tools/compaction.js.map +0 -1
  143. package/dist/src/tools/conventions.d.ts +0 -3
  144. package/dist/src/tools/conventions.d.ts.map +0 -1
  145. package/dist/src/tools/conventions.js +0 -121
  146. package/dist/src/tools/conventions.js.map +0 -1
  147. package/dist/src/tools/decisions.d.ts +0 -3
  148. package/dist/src/tools/decisions.d.ts.map +0 -1
  149. package/dist/src/tools/decisions.js +0 -136
  150. package/dist/src/tools/decisions.js.map +0 -1
  151. package/dist/src/tools/export-import.d.ts +0 -3
  152. package/dist/src/tools/export-import.d.ts.map +0 -1
  153. package/dist/src/tools/export-import.js +0 -180
  154. package/dist/src/tools/export-import.js.map +0 -1
  155. package/dist/src/tools/file-notes.d.ts +0 -3
  156. package/dist/src/tools/file-notes.d.ts.map +0 -1
  157. package/dist/src/tools/file-notes.js +0 -104
  158. package/dist/src/tools/file-notes.js.map +0 -1
  159. package/dist/src/tools/intelligence.d.ts +0 -3
  160. package/dist/src/tools/intelligence.d.ts.map +0 -1
  161. package/dist/src/tools/intelligence.js +0 -427
  162. package/dist/src/tools/intelligence.js.map +0 -1
  163. package/dist/src/tools/milestones.d.ts +0 -3
  164. package/dist/src/tools/milestones.d.ts.map +0 -1
  165. package/dist/src/tools/milestones.js +0 -71
  166. package/dist/src/tools/milestones.js.map +0 -1
  167. package/dist/src/tools/scheduler.d.ts +0 -3
  168. package/dist/src/tools/scheduler.d.ts.map +0 -1
  169. package/dist/src/tools/scheduler.js +0 -363
  170. package/dist/src/tools/scheduler.js.map +0 -1
  171. package/dist/src/tools/sessions.d.ts +0 -3
  172. package/dist/src/tools/sessions.d.ts.map +0 -1
  173. package/dist/src/tools/sessions.js +0 -356
  174. package/dist/src/tools/sessions.js.map +0 -1
  175. package/dist/src/tools/stats.d.ts +0 -3
  176. package/dist/src/tools/stats.d.ts.map +0 -1
  177. package/dist/src/tools/stats.js +0 -63
  178. package/dist/src/tools/stats.js.map +0 -1
  179. package/dist/src/tools/tasks.d.ts +0 -3
  180. package/dist/src/tools/tasks.d.ts.map +0 -1
  181. package/dist/src/tools/tasks.js +0 -206
  182. package/dist/src/tools/tasks.js.map +0 -1
  183. package/dist/src/types.d.ts +0 -170
  184. package/dist/src/types.d.ts.map +0 -1
  185. package/dist/src/types.js +0 -5
  186. package/dist/src/types.js.map +0 -1
  187. package/dist/src/utils.d.ts +0 -58
  188. package/dist/src/utils.d.ts.map +0 -1
  189. package/dist/src/utils.js +0 -190
  190. package/dist/src/utils.js.map +0 -1
  191. package/dist/tests/helpers/test-db.d.ts +0 -12
  192. package/dist/tests/helpers/test-db.d.ts.map +0 -1
  193. package/dist/tests/helpers/test-db.js +0 -149
  194. package/dist/tests/helpers/test-db.js.map +0 -1
  195. package/dist/tests/installer/installer.test.d.ts +0 -2
  196. package/dist/tests/installer/installer.test.d.ts.map +0 -1
  197. package/dist/tests/installer/installer.test.js +0 -160
  198. package/dist/tests/installer/installer.test.js.map +0 -1
  199. package/dist/tests/repositories/repos.test.d.ts +0 -2
  200. package/dist/tests/repositories/repos.test.d.ts.map +0 -1
  201. package/dist/tests/repositories/repos.test.js +0 -220
  202. package/dist/tests/repositories/repos.test.js.map +0 -1
  203. package/dist/tools/maintenance.d.ts +0 -3
  204. package/dist/tools/maintenance.d.ts.map +0 -1
  205. package/dist/tools/maintenance.js +0 -647
  206. package/dist/tools/maintenance.js.map +0 -1
  207. package/dist/tools/memory.d.ts +0 -3
  208. package/dist/tools/memory.d.ts.map +0 -1
  209. package/dist/tools/memory.js +0 -446
  210. package/dist/tools/memory.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,gCAAgC;AAChC,+EAA+E;AAE/E,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EACL,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EACrB,eAAe,GAChB,MAAM,gBAAgB,CAAC;AAGxB;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,QAAiB;IAC/C,sBAAsB;IACtB,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;IAC5E,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IAE9D,4BAA4B;IAC5B,IAAI,GAAG,GAAG,QAAQ,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACpC,OAAO,GAAG,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACjC,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;YACrC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;gBAC1C,OAAO,GAAG,CAAC;YACb,CAAC;QACH,CAAC;QACD,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,qBAAqB;IACrB,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAC1B,OAAe,EACf,WAAmB,mBAAmB,EACtC,aAAqB,qBAAqB;IAE1C,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,6DAA6D;IAC7D,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC;IAC1C,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QACvD,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC/D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC5B,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBACxC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,uBAAuB;gBACrE,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,+BAA+B,CAAC,CAAC;IAE3C,SAAS,IAAI,CAAC,GAAW,EAAE,KAAa;QACtC,IAAI,KAAK,GAAG,QAAQ,IAAI,KAAK,CAAC,MAAM,IAAI,UAAU;YAAE,OAAO;QAE3D,IAAI,OAAoB,CAAC;QACzB,IAAI,CAAC;YACH,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;QAED,gCAAgC;QAChC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAErD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,MAAM,IAAI,UAAU;gBAAE,MAAM;YACtC,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,WAAW,EAAE;gBAAE,SAAS;YAEhE,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;oBAAE,SAAS;gBACzC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBACnE,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC;gBAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACN,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBACnE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACjB,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,QAAgB;IAC1C,MAAM,UAAU,GAAG,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACtD,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;QAC/D,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC7B,OAAO,KAAkB,CAAC;YAC5B,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,WAAmB,EAAE,OAAe;IAC7D,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,OAAO,WAAW,YAAY,OAAO,EAAE,EAAE;YACvD,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SAChC,CAAC,CAAC,IAAI,EAAE,CAAC;IACZ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,WAAmB;IAC3C,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;AACvD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,WAAmB,EAAE,KAAa,EAAE,QAAgB,EAAE;IACnF,OAAO,UAAU,CACf,WAAW,EACX,8BAA8B,KAAK,sCAAsC,KAAK,EAAE,CACjF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,WAAmB,EAAE,KAAa;IAC/D,OAAO,UAAU,CAAC,WAAW,EAAE,qBAAqB,KAAK,eAAe,CAAC,CAAC;AAC5E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,WAAmB,EAAE,KAAa;IACnE,MAAM,MAAM,GAAG,UAAU,CACvB,WAAW,EACX,4BAA4B,KAAK,kCAAkC,CACpE,CAAC;IACF,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,WAAmB;IAC9C,OAAO,UAAU,CAAC,WAAW,EAAE,6BAA6B,CAAC,CAAC;AAChE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,WAAmB;IAC5C,OAAO,UAAU,CAAC,WAAW,EAAE,wBAAwB,CAAC,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAI,IAA+B,EAAE,QAAW;IAC3E,IAAI,CAAC,IAAI;QAAE,OAAO,QAAQ,CAAC;IAC3B,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAM,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,IAAa,EAAE,SAA8B,MAAM;IAChF,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACvC,CAAC;IACD,0DAA0D;IAC1D,OAAO,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC;AAC/D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,YAAoB;IAC/C,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC;IAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;IAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAW,EAAE,SAAiB;IACrD,IAAI,GAAG,CAAC,MAAM,IAAI,SAAS;QAAE,OAAO,GAAG,CAAC;IACxC,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;AAC7C,CAAC"}
@@ -1,12 +0,0 @@
1
- import Database from "better-sqlite3";
2
- /**
3
- * Create a fresh in-memory SQLite database with Engram's schema applied.
4
- * Returns the DB instance for direct use in tests.
5
- */
6
- export declare function createTestDb(): Database.Database;
7
- /**
8
- * Mock the database module to use an in-memory test database.
9
- * Returns the test DB instance.
10
- */
11
- export declare function mockDatabase(): Database.Database;
12
- //# sourceMappingURL=test-db.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-db.d.ts","sourceRoot":"","sources":["../../../tests/helpers/test-db.ts"],"names":[],"mappings":"AAIA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAGtC;;;GAGG;AACH,wBAAgB,YAAY,IAAI,QAAQ,CAAC,QAAQ,CA0HhD;AAED;;;GAGG;AACH,wBAAgB,YAAY,IAAI,QAAQ,CAAC,QAAQ,CAehD"}
@@ -1,149 +0,0 @@
1
- // ============================================================================
2
- // Test Helper — In-Memory Database Setup
3
- // ============================================================================
4
- import Database from "better-sqlite3";
5
- import { vi } from "vitest";
6
- /**
7
- * Create a fresh in-memory SQLite database with Engram's schema applied.
8
- * Returns the DB instance for direct use in tests.
9
- */
10
- export function createTestDb() {
11
- const db = new Database(":memory:");
12
- db.pragma("journal_mode = WAL");
13
- db.pragma("foreign_keys = ON");
14
- // Apply baseline schema (mirrors migrations v1-v4)
15
- db.exec(`
16
- CREATE TABLE IF NOT EXISTS schema_meta (
17
- key TEXT PRIMARY KEY,
18
- value TEXT NOT NULL
19
- );
20
- INSERT OR REPLACE INTO schema_meta (key, value) VALUES ('version', '4');
21
-
22
- CREATE TABLE IF NOT EXISTS sessions (
23
- id INTEGER PRIMARY KEY AUTOINCREMENT,
24
- started_at TEXT NOT NULL,
25
- ended_at TEXT,
26
- summary TEXT,
27
- agent_name TEXT DEFAULT 'unknown',
28
- project_root TEXT,
29
- tags TEXT
30
- );
31
-
32
- CREATE TABLE IF NOT EXISTS changes (
33
- id INTEGER PRIMARY KEY AUTOINCREMENT,
34
- session_id INTEGER,
35
- timestamp TEXT NOT NULL,
36
- file_path TEXT NOT NULL,
37
- change_type TEXT NOT NULL,
38
- description TEXT NOT NULL,
39
- diff_summary TEXT,
40
- impact_scope TEXT DEFAULT 'local'
41
- );
42
-
43
- CREATE TABLE IF NOT EXISTS decisions (
44
- id INTEGER PRIMARY KEY AUTOINCREMENT,
45
- session_id INTEGER,
46
- timestamp TEXT NOT NULL,
47
- decision TEXT NOT NULL,
48
- rationale TEXT,
49
- affected_files TEXT,
50
- tags TEXT,
51
- status TEXT DEFAULT 'active',
52
- superseded_by INTEGER
53
- );
54
-
55
- CREATE TABLE IF NOT EXISTS file_notes (
56
- file_path TEXT PRIMARY KEY,
57
- purpose TEXT,
58
- dependencies TEXT,
59
- dependents TEXT,
60
- layer TEXT,
61
- last_reviewed TEXT,
62
- last_modified_session INTEGER,
63
- notes TEXT,
64
- complexity TEXT
65
- );
66
-
67
- CREATE TABLE IF NOT EXISTS conventions (
68
- id INTEGER PRIMARY KEY AUTOINCREMENT,
69
- session_id INTEGER,
70
- timestamp TEXT NOT NULL,
71
- category TEXT NOT NULL,
72
- rule TEXT NOT NULL,
73
- examples TEXT,
74
- enforced INTEGER DEFAULT 1
75
- );
76
-
77
- CREATE TABLE IF NOT EXISTS tasks (
78
- id INTEGER PRIMARY KEY AUTOINCREMENT,
79
- session_id INTEGER,
80
- created_at TEXT NOT NULL,
81
- updated_at TEXT NOT NULL,
82
- title TEXT NOT NULL,
83
- description TEXT,
84
- priority TEXT DEFAULT 'medium',
85
- status TEXT DEFAULT 'backlog',
86
- assigned_files TEXT,
87
- tags TEXT,
88
- blocked_by TEXT,
89
- completed_at TEXT
90
- );
91
-
92
- CREATE TABLE IF NOT EXISTS milestones (
93
- id INTEGER PRIMARY KEY AUTOINCREMENT,
94
- session_id INTEGER,
95
- timestamp TEXT NOT NULL,
96
- title TEXT NOT NULL,
97
- description TEXT,
98
- version TEXT,
99
- tags TEXT
100
- );
101
-
102
- CREATE TABLE IF NOT EXISTS snapshot_cache (
103
- key TEXT PRIMARY KEY,
104
- data TEXT NOT NULL,
105
- created_at TEXT NOT NULL
106
- );
107
-
108
- CREATE TABLE IF NOT EXISTS scheduled_events (
109
- id INTEGER PRIMARY KEY AUTOINCREMENT,
110
- session_id INTEGER,
111
- created_at TEXT NOT NULL,
112
- trigger_type TEXT NOT NULL,
113
- trigger_value TEXT NOT NULL,
114
- event_type TEXT NOT NULL,
115
- payload TEXT,
116
- status TEXT DEFAULT 'pending',
117
- last_triggered_at TEXT,
118
- acknowledged_at TEXT,
119
- recurrence TEXT,
120
- max_triggers INTEGER DEFAULT 1,
121
- trigger_count INTEGER DEFAULT 0
122
- );
123
-
124
- CREATE TABLE IF NOT EXISTS config (
125
- key TEXT PRIMARY KEY,
126
- value TEXT NOT NULL
127
- );
128
- `);
129
- return db;
130
- }
131
- /**
132
- * Mock the database module to use an in-memory test database.
133
- * Returns the test DB instance.
134
- */
135
- export function mockDatabase() {
136
- const db = createTestDb();
137
- // This will be used in tests that import from "../database.js"
138
- vi.mock("../database.js", () => ({
139
- getDb: () => db,
140
- now: () => new Date().toISOString(),
141
- getCurrentSessionId: () => 1,
142
- getProjectRoot: () => "/test/project",
143
- getDbSizeKb: () => 42,
144
- getDbPath: () => ":memory:",
145
- backupDatabase: () => "/test/backup.db",
146
- }));
147
- return db;
148
- }
149
- //# sourceMappingURL=test-db.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-db.js","sourceRoot":"","sources":["../../../tests/helpers/test-db.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,yCAAyC;AACzC,+EAA+E;AAE/E,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE5B;;;GAGG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC;IACpC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAChC,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAE/B,mDAAmD;IACnD,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiHP,CAAC,CAAC;IAEH,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,EAAE,GAAG,YAAY,EAAE,CAAC;IAE1B,+DAA+D;IAC/D,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,EAAE,CAAC,CAAC;QAC/B,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE;QACf,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,mBAAmB,EAAE,GAAG,EAAE,CAAC,CAAC;QAC5B,cAAc,EAAE,GAAG,EAAE,CAAC,eAAe;QACrC,WAAW,EAAE,GAAG,EAAE,CAAC,EAAE;QACrB,SAAS,EAAE,GAAG,EAAE,CAAC,UAAU;QAC3B,cAAc,EAAE,GAAG,EAAE,CAAC,iBAAiB;KACxC,CAAC,CAAC,CAAC;IAEJ,OAAO,EAAE,CAAC;AACZ,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=installer.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"installer.test.d.ts","sourceRoot":"","sources":["../../../tests/installer/installer.test.ts"],"names":[],"mappings":""}
@@ -1,160 +0,0 @@
1
- // ============================================================================
2
- // Installer Tests — Config Writer & IDE Entry Generation
3
- // ============================================================================
4
- import { describe, it, expect, beforeEach, afterEach } from "vitest";
5
- import fs from "fs";
6
- import path from "path";
7
- import os from "os";
8
- import { makeEngramEntry, addToConfig, removeFromConfig, readJson } from "../../src/installer/config-writer.js";
9
- import { IDE_CONFIGS } from "../../src/installer/ide-configs.js";
10
- // Use a temp directory for test config files
11
- let tmpDir;
12
- beforeEach(() => {
13
- tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), "engram-test-"));
14
- });
15
- afterEach(() => {
16
- fs.rmSync(tmpDir, { recursive: true, force: true });
17
- });
18
- // ─── makeEngramEntry ─────────────────────────────────────────────────
19
- describe("makeEngramEntry", () => {
20
- it("should generate basic entry for mcpServers IDEs (Cursor, Windsurf)", () => {
21
- const entry = makeEngramEntry(IDE_CONFIGS.cursor);
22
- expect(entry.command).toBe("npx");
23
- expect(entry.args).toEqual(["-y", "engram-mcp-server"]);
24
- expect(entry.type).toBeUndefined();
25
- });
26
- it("should include type:stdio for VS Code", () => {
27
- const entry = makeEngramEntry(IDE_CONFIGS.vscode);
28
- expect(entry.type).toBe("stdio");
29
- expect(entry.command).toBe("npx");
30
- });
31
- it("should include type:stdio for Claude Code", () => {
32
- const entry = makeEngramEntry(IDE_CONFIGS.claudecode);
33
- expect(entry.type).toBe("stdio");
34
- });
35
- it("should include type:stdio for Trae IDE", () => {
36
- const entry = makeEngramEntry(IDE_CONFIGS.trae);
37
- expect(entry.type).toBe("stdio");
38
- });
39
- it("should use cmd /c wrapper when requiresCmdWrapper is true", () => {
40
- // Simulate a Windows-like IDE def
41
- const windowsIde = {
42
- name: "Test",
43
- configKey: "mcpServers",
44
- requiresType: true,
45
- requiresCmdWrapper: true,
46
- scopes: {},
47
- };
48
- const entry = makeEngramEntry(windowsIde);
49
- expect(entry.command).toBe("cmd");
50
- expect(entry.args).toEqual(["/c", "npx", "-y", "engram-mcp-server"]);
51
- expect(entry.type).toBe("stdio");
52
- });
53
- });
54
- // ─── addToConfig ─────────────────────────────────────────────────────
55
- describe("addToConfig", () => {
56
- it("should create config with mcpServers key for Cursor", () => {
57
- const configPath = path.join(tmpDir, "cursor-mcp.json");
58
- const result = addToConfig(configPath, IDE_CONFIGS.cursor);
59
- expect(result).toBe("added");
60
- const written = readJson(configPath);
61
- expect(written).toBeDefined();
62
- expect(written.mcpServers).toBeDefined();
63
- expect(written.mcpServers.engram).toBeDefined();
64
- expect(written.mcpServers.engram.command).toBe("npx");
65
- });
66
- it("should create config with servers key for VS Code", () => {
67
- const configPath = path.join(tmpDir, "vscode-mcp.json");
68
- const result = addToConfig(configPath, IDE_CONFIGS.vscode);
69
- expect(result).toBe("added");
70
- const written = readJson(configPath);
71
- expect(written.servers).toBeDefined();
72
- expect(written.servers.engram).toBeDefined();
73
- expect(written.servers.engram.type).toBe("stdio");
74
- expect(written.servers.engram.command).toBe("npx");
75
- // Must NOT have mcpServers key
76
- expect(written.mcpServers).toBeUndefined();
77
- });
78
- it("should preserve existing entries when adding", () => {
79
- const configPath = path.join(tmpDir, "existing.json");
80
- fs.writeFileSync(configPath, JSON.stringify({
81
- mcpServers: {
82
- "other-server": { command: "node", args: ["server.js"] }
83
- }
84
- }));
85
- addToConfig(configPath, IDE_CONFIGS.cursor);
86
- const written = readJson(configPath);
87
- expect(written.mcpServers["other-server"]).toBeDefined();
88
- expect(written.mcpServers.engram).toBeDefined();
89
- });
90
- it("should return 'exists' when entry is identical", () => {
91
- const configPath = path.join(tmpDir, "dup.json");
92
- addToConfig(configPath, IDE_CONFIGS.cursor);
93
- const result = addToConfig(configPath, IDE_CONFIGS.cursor);
94
- expect(result).toBe("exists");
95
- });
96
- it("should return 'updated' when entry differs", () => {
97
- const configPath = path.join(tmpDir, "update.json");
98
- // Write an old-style entry
99
- fs.writeFileSync(configPath, JSON.stringify({
100
- mcpServers: {
101
- engram: { command: "node", args: ["old-path/index.js"] }
102
- }
103
- }));
104
- const result = addToConfig(configPath, IDE_CONFIGS.cursor);
105
- expect(result).toBe("updated");
106
- const written = readJson(configPath);
107
- expect(written.mcpServers.engram.command).toBe("npx");
108
- });
109
- });
110
- // ─── removeFromConfig ────────────────────────────────────────────────
111
- describe("removeFromConfig", () => {
112
- it("should remove engram entry", () => {
113
- const configPath = path.join(tmpDir, "remove.json");
114
- addToConfig(configPath, IDE_CONFIGS.cursor);
115
- const removed = removeFromConfig(configPath, IDE_CONFIGS.cursor);
116
- expect(removed).toBe(true);
117
- const written = readJson(configPath);
118
- expect(written.mcpServers?.engram).toBeUndefined();
119
- });
120
- it("should return false if entry doesn't exist", () => {
121
- const configPath = path.join(tmpDir, "empty.json");
122
- fs.writeFileSync(configPath, "{}");
123
- const removed = removeFromConfig(configPath, IDE_CONFIGS.cursor);
124
- expect(removed).toBe(false);
125
- });
126
- it("should return false if file doesn't exist", () => {
127
- const removed = removeFromConfig(path.join(tmpDir, "nonexistent.json"), IDE_CONFIGS.cursor);
128
- expect(removed).toBe(false);
129
- });
130
- });
131
- // ─── IDE Config Correctness ──────────────────────────────────────────
132
- describe("IDE Config Definitions", () => {
133
- it("VS Code should use 'servers' configKey", () => {
134
- expect(IDE_CONFIGS.vscode.configKey).toBe("servers");
135
- });
136
- it("VS Code should require type:stdio", () => {
137
- expect(IDE_CONFIGS.vscode.requiresType).toBe(true);
138
- });
139
- it("Cursor should use 'mcpServers' configKey", () => {
140
- expect(IDE_CONFIGS.cursor.configKey).toBe("mcpServers");
141
- });
142
- it("Claude Code should require type:stdio", () => {
143
- expect(IDE_CONFIGS.claudecode.requiresType).toBe(true);
144
- });
145
- it("Visual Studio should use 'mcpServers' configKey", () => {
146
- expect(IDE_CONFIGS.visualstudio.configKey).toBe("mcpServers");
147
- });
148
- it("all IDEs should have a name", () => {
149
- for (const [id, ide] of Object.entries(IDE_CONFIGS)) {
150
- expect(ide.name, `${id} should have a name`).toBeTruthy();
151
- }
152
- });
153
- it("all IDEs should have at least one scope", () => {
154
- for (const [id, ide] of Object.entries(IDE_CONFIGS)) {
155
- const hasScope = (ide.scopes.global?.length ?? 0) > 0 || (ide.scopes.localDirs?.length ?? 0) > 0;
156
- expect(hasScope, `${id} should have at least one scope`).toBe(true);
157
- }
158
- });
159
- });
160
- //# sourceMappingURL=installer.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"installer.test.js","sourceRoot":"","sources":["../../../tests/installer/installer.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=repos.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"repos.test.d.ts","sourceRoot":"","sources":["../../../tests/repositories/repos.test.ts"],"names":[],"mappings":""}
@@ -1,220 +0,0 @@
1
- // ============================================================================
2
- // Repository Tests — All 7 Core Repos
3
- // ============================================================================
4
- import { describe, it, expect, beforeEach } from "vitest";
5
- import { createTestDb } from "../helpers/test-db.js";
6
- import { SessionsRepo } from "../../src/repositories/sessions.repo.js";
7
- import { ChangesRepo } from "../../src/repositories/changes.repo.js";
8
- import { DecisionsRepo } from "../../src/repositories/decisions.repo.js";
9
- import { TasksRepo } from "../../src/repositories/tasks.repo.js";
10
- import { ConventionsRepo } from "../../src/repositories/conventions.repo.js";
11
- import { MilestonesRepo } from "../../src/repositories/milestones.repo.js";
12
- import { FileNotesRepo } from "../../src/repositories/file-notes.repo.js";
13
- let db;
14
- beforeEach(() => {
15
- db = createTestDb();
16
- });
17
- // ─── Sessions ────────────────────────────────────────────────────────
18
- describe("SessionsRepo", () => {
19
- it("should create and retrieve a session by ID", () => {
20
- const repo = new SessionsRepo(db);
21
- const id = repo.create("test-agent", "/test/project", "2025-01-01T00:00:00Z");
22
- expect(id).toBeGreaterThan(0);
23
- });
24
- it("should close a session with summary", () => {
25
- const repo = new SessionsRepo(db);
26
- const id = repo.create("test", "/test", "2025-01-01T00:00:00Z");
27
- repo.close(id, "2025-01-01T01:00:00Z", "Did some work", ["refactoring"]);
28
- const last = repo.getLastCompleted();
29
- expect(last).not.toBeNull();
30
- expect(last.summary).toBe("Did some work");
31
- });
32
- it("should detect open sessions", () => {
33
- const repo = new SessionsRepo(db);
34
- const id = repo.create("test", "/", "2025-01-01T00:00:00Z");
35
- expect(repo.getOpenSessionId()).toBe(id);
36
- repo.close(id, "2025-01-01T01:00:00Z", "done");
37
- expect(repo.getOpenSessionId()).toBeNull();
38
- });
39
- it("should return session history with limit and offset", () => {
40
- const repo = new SessionsRepo(db);
41
- for (let i = 0; i < 5; i++) {
42
- repo.create(`agent-${i}`, "/", `2025-01-0${i + 1}T00:00:00Z`);
43
- }
44
- const history = repo.getHistory(3, 0);
45
- expect(history).toHaveLength(3);
46
- });
47
- it("should count sessions", () => {
48
- const repo = new SessionsRepo(db);
49
- repo.create("a", "/", "2025-01-01T00:00:00Z");
50
- repo.create("b", "/", "2025-01-02T00:00:00Z");
51
- expect(repo.countAll()).toBe(2);
52
- });
53
- });
54
- // ─── Changes ─────────────────────────────────────────────────────────
55
- describe("ChangesRepo", () => {
56
- it("should record and retrieve changes by file", () => {
57
- const repo = new ChangesRepo(db);
58
- repo.recordBulk([
59
- { file_path: "src/foo.ts", change_type: "created", description: "Added foo", impact_scope: "local" },
60
- { file_path: "src/bar.ts", change_type: "modified", description: "Updated bar", impact_scope: "module" },
61
- ], 1, "2025-01-01T00:00:00Z");
62
- const changes = repo.getByFile("src/foo.ts", 10);
63
- expect(changes).toHaveLength(1);
64
- expect(changes[0].description).toBe("Added foo");
65
- });
66
- it("should get changes since a timestamp", () => {
67
- const repo = new ChangesRepo(db);
68
- repo.recordBulk([
69
- { file_path: "a.ts", change_type: "created", description: "old", impact_scope: "local" },
70
- ], 1, "2025-01-01T00:00:00Z");
71
- repo.recordBulk([
72
- { file_path: "b.ts", change_type: "created", description: "new", impact_scope: "local" },
73
- ], 1, "2025-06-01T00:00:00Z");
74
- const recent = repo.getSince("2025-03-01T00:00:00Z");
75
- expect(recent).toHaveLength(1);
76
- expect(recent[0].file_path).toBe("b.ts");
77
- });
78
- it("should return most changed files", () => {
79
- const repo = new ChangesRepo(db);
80
- repo.recordBulk([
81
- { file_path: "hot.ts", change_type: "modified", description: "1", impact_scope: "local" },
82
- ], 1, "2025-01-01T00:00:00Z");
83
- repo.recordBulk([
84
- { file_path: "hot.ts", change_type: "modified", description: "2", impact_scope: "local" },
85
- ], 1, "2025-01-02T00:00:00Z");
86
- repo.recordBulk([
87
- { file_path: "cold.ts", change_type: "created", description: "3", impact_scope: "local" },
88
- ], 1, "2025-01-03T00:00:00Z");
89
- const most = repo.getMostChanged(5);
90
- expect(most[0].file_path).toBe("hot.ts");
91
- expect(most[0].change_count).toBe(2);
92
- });
93
- });
94
- // ─── Decisions ───────────────────────────────────────────────────────
95
- describe("DecisionsRepo", () => {
96
- it("should create and retrieve decisions", () => {
97
- const repo = new DecisionsRepo(db);
98
- const id = repo.create(1, "2025-01-01T00:00:00Z", "Use TypeScript es2022", "Modern target", ["tsconfig.json"], ["architecture"], "active");
99
- expect(id).toBeGreaterThan(0);
100
- const decisions = repo.getFiltered({ status: "active", limit: 10 });
101
- expect(decisions).toHaveLength(1);
102
- expect(decisions[0].decision).toBe("Use TypeScript es2022");
103
- });
104
- it("should update decision status", () => {
105
- const repo = new DecisionsRepo(db);
106
- const id = repo.create(1, "2025-01-01T00:00:00Z", "Old pattern");
107
- const changed = repo.updateStatus(id, "deprecated");
108
- expect(changed).toBe(1);
109
- const decisions = repo.getFiltered({ status: "deprecated", limit: 10 });
110
- expect(decisions).toHaveLength(1);
111
- });
112
- it("should supersede decisions", () => {
113
- const repo = new DecisionsRepo(db);
114
- const oldId = repo.create(1, "2025-01-01T00:00:00Z", "Old way");
115
- const newId = repo.create(1, "2025-01-02T00:00:00Z", "New way");
116
- repo.supersede(oldId, newId);
117
- const active = repo.getActive();
118
- expect(active.some(d => d.id === oldId)).toBe(false);
119
- });
120
- });
121
- // ─── Tasks ───────────────────────────────────────────────────────────
122
- describe("TasksRepo", () => {
123
- it("should create and retrieve tasks", () => {
124
- const repo = new TasksRepo(db);
125
- const id = repo.create(1, "2025-01-01T00:00:00Z", {
126
- title: "Fix Bug #42",
127
- description: "Critical bug in auth",
128
- priority: "high",
129
- status: "backlog",
130
- });
131
- expect(id).toBeGreaterThan(0);
132
- const tasks = repo.getFiltered({ limit: 10 });
133
- expect(tasks).toHaveLength(1);
134
- expect(tasks[0].title).toBe("Fix Bug #42");
135
- });
136
- it("should update task status", () => {
137
- const repo = new TasksRepo(db);
138
- const id = repo.create(1, "2025-01-01T00:00:00Z", {
139
- title: "Do thing",
140
- priority: "medium",
141
- status: "backlog",
142
- });
143
- repo.update(id, "2025-01-01T01:00:00Z", { status: "in_progress" });
144
- const tasks = repo.getFiltered({ status: "in_progress", limit: 10 });
145
- expect(tasks).toHaveLength(1);
146
- });
147
- it("should get open tasks", () => {
148
- const repo = new TasksRepo(db);
149
- repo.create(1, "2025-01-01T00:00:00Z", { title: "Open task" });
150
- repo.create(1, "2025-01-01T00:00:00Z", { title: "Done task", status: "done" });
151
- const open = repo.getOpen(10);
152
- expect(open).toHaveLength(1);
153
- expect(open[0].title).toBe("Open task");
154
- });
155
- });
156
- // ─── Conventions ─────────────────────────────────────────────────────
157
- describe("ConventionsRepo", () => {
158
- it("should create and toggle conventions", () => {
159
- const repo = new ConventionsRepo(db);
160
- const id = repo.create(1, "2025-01-01T00:00:00Z", "naming", "Use camelCase for variables");
161
- expect(id).toBeGreaterThan(0);
162
- const active = repo.getFiltered({ includeDisabled: false });
163
- expect(active).toHaveLength(1);
164
- repo.toggle(id, false);
165
- const disabled = repo.getFiltered({ includeDisabled: false });
166
- expect(disabled).toHaveLength(0);
167
- // Including disabled should still show it
168
- const all = repo.getFiltered({ includeDisabled: true });
169
- expect(all).toHaveLength(1);
170
- });
171
- });
172
- // ─── Milestones ──────────────────────────────────────────────────────
173
- describe("MilestonesRepo", () => {
174
- it("should create and list milestones", () => {
175
- const repo = new MilestonesRepo(db);
176
- const id = repo.create(1, "2025-01-01T00:00:00Z", "v1.0 Release", "Initial release", "1.0.0", ["release"]);
177
- expect(id).toBeGreaterThan(0);
178
- const milestones = repo.getAll(10);
179
- expect(milestones).toHaveLength(1);
180
- expect(milestones[0].title).toBe("v1.0 Release");
181
- });
182
- });
183
- // ─── File Notes ──────────────────────────────────────────────────────
184
- describe("FileNotesRepo", () => {
185
- it("should upsert and retrieve file notes", () => {
186
- const repo = new FileNotesRepo(db);
187
- repo.upsert("src/index.ts", "2025-01-01T00:00:00Z", 1, {
188
- purpose: "Entry point",
189
- layer: "config",
190
- complexity: "simple",
191
- });
192
- const note = repo.getByPath("src/index.ts");
193
- expect(note).not.toBeNull();
194
- expect(note.purpose).toBe("Entry point");
195
- expect(note.layer).toBe("config");
196
- });
197
- it("should preserve existing fields when updating with null", () => {
198
- const repo = new FileNotesRepo(db);
199
- repo.upsert("src/test.ts", "2025-01-01T00:00:00Z", 1, {
200
- purpose: "Test file",
201
- layer: "test",
202
- });
203
- // Update only complexity
204
- repo.upsert("src/test.ts", "2025-01-02T00:00:00Z", 1, {
205
- complexity: "moderate",
206
- });
207
- const note = repo.getByPath("src/test.ts");
208
- expect(note.purpose).toBe("Test file"); // preserved
209
- expect(note.complexity).toBe("moderate"); // updated
210
- });
211
- it("should filter by layer", () => {
212
- const repo = new FileNotesRepo(db);
213
- repo.upsert("a.ts", "2025-01-01T00:00:00Z", 1, { layer: "ui" });
214
- repo.upsert("b.ts", "2025-01-01T00:00:00Z", 1, { layer: "data" });
215
- repo.upsert("c.ts", "2025-01-01T00:00:00Z", 1, { layer: "ui" });
216
- const uiNotes = repo.getFiltered({ layer: "ui" });
217
- expect(uiNotes).toHaveLength(2);
218
- });
219
- });
220
- //# sourceMappingURL=repos.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"repos.test.js","sourceRoot":"","sources":["../../../tests/repositories/repos.test.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
- export declare function registerMaintenanceTools(server: McpServer): void;
3
- //# sourceMappingURL=maintenance.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"maintenance.d.ts","sourceRoot":"","sources":["../../src/tools/maintenance.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AASpE,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAkwBhE"}