memento-mcp-server 1.6.0 → 1.7.2

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 (560) hide show
  1. package/INSTALL.en.md +303 -303
  2. package/INSTALL.md +303 -303
  3. package/README.en.md +331 -330
  4. package/README.md +432 -432
  5. package/dist/algorithms/hybrid-search-engine.d.ts +114 -44
  6. package/dist/algorithms/hybrid-search-engine.d.ts.map +1 -1
  7. package/dist/algorithms/hybrid-search-engine.js +261 -235
  8. package/dist/algorithms/hybrid-search-engine.js.map +1 -1
  9. package/dist/algorithms/search-engine.d.ts +2 -14
  10. package/dist/algorithms/search-engine.d.ts.map +1 -1
  11. package/dist/algorithms/search-engine.js +43 -35
  12. package/dist/algorithms/search-engine.js.map +1 -1
  13. package/dist/algorithms/vector-search-engine-migration.d.ts +67 -0
  14. package/dist/algorithms/vector-search-engine-migration.d.ts.map +1 -0
  15. package/dist/algorithms/vector-search-engine-migration.js +196 -0
  16. package/dist/algorithms/vector-search-engine-migration.js.map +1 -0
  17. package/dist/algorithms/vector-search-engine-refactored.d.ts +56 -0
  18. package/dist/algorithms/vector-search-engine-refactored.d.ts.map +1 -0
  19. package/dist/algorithms/vector-search-engine-refactored.js +101 -0
  20. package/dist/algorithms/vector-search-engine-refactored.js.map +1 -0
  21. package/dist/algorithms/vector-search-engine.d.ts +9 -2
  22. package/dist/algorithms/vector-search-engine.d.ts.map +1 -1
  23. package/dist/algorithms/vector-search-engine.js +245 -121
  24. package/dist/algorithms/vector-search-engine.js.map +1 -1
  25. package/dist/client/index.d.ts.map +1 -1
  26. package/dist/client/index.js +34 -11
  27. package/dist/client/index.js.map +1 -1
  28. package/dist/config/environment.d.ts +26 -0
  29. package/dist/config/environment.d.ts.map +1 -0
  30. package/dist/config/environment.js +103 -0
  31. package/dist/config/environment.js.map +1 -0
  32. package/dist/config/index.d.ts.map +1 -1
  33. package/dist/config/index.js +29 -50
  34. package/dist/config/index.js.map +1 -1
  35. package/dist/config/vector-search.config.d.ts +25 -0
  36. package/dist/config/vector-search.config.d.ts.map +1 -0
  37. package/dist/config/vector-search.config.js +40 -0
  38. package/dist/config/vector-search.config.js.map +1 -0
  39. package/dist/database/init.d.ts.map +1 -1
  40. package/dist/database/init.js +154 -17
  41. package/dist/database/init.js.map +1 -1
  42. package/dist/database/migrate.d.ts +2 -1
  43. package/dist/database/migrate.d.ts.map +1 -1
  44. package/dist/database/migrate.js +191 -18
  45. package/dist/database/migrate.js.map +1 -1
  46. package/dist/database/schema.sql +234 -159
  47. package/dist/factories/hybrid-search.factory.d.ts +20 -0
  48. package/dist/factories/hybrid-search.factory.d.ts.map +1 -0
  49. package/dist/factories/hybrid-search.factory.js +57 -0
  50. package/dist/factories/hybrid-search.factory.js.map +1 -0
  51. package/dist/factories/spaced-repetition.factory.d.ts +48 -0
  52. package/dist/factories/spaced-repetition.factory.d.ts.map +1 -0
  53. package/dist/factories/spaced-repetition.factory.js +187 -0
  54. package/dist/factories/spaced-repetition.factory.js.map +1 -0
  55. package/dist/factories/vector-search.factory.d.ts +25 -0
  56. package/dist/factories/vector-search.factory.d.ts.map +1 -0
  57. package/dist/factories/vector-search.factory.js +47 -0
  58. package/dist/factories/vector-search.factory.js.map +1 -0
  59. package/dist/interfaces/database.interface.d.ts +36 -0
  60. package/dist/interfaces/database.interface.d.ts.map +1 -0
  61. package/dist/interfaces/database.interface.js +6 -0
  62. package/dist/interfaces/database.interface.js.map +1 -0
  63. package/dist/interfaces/spaced-repetition.interface.d.ts +63 -0
  64. package/dist/interfaces/spaced-repetition.interface.d.ts.map +1 -0
  65. package/dist/interfaces/spaced-repetition.interface.js +6 -0
  66. package/dist/interfaces/spaced-repetition.interface.js.map +1 -0
  67. package/dist/repositories/vector-performance.repository.d.ts +25 -0
  68. package/dist/repositories/vector-performance.repository.d.ts.map +1 -0
  69. package/dist/repositories/vector-performance.repository.js +134 -0
  70. package/dist/repositories/vector-performance.repository.js.map +1 -0
  71. package/dist/repositories/vector-search.repository.d.ts +43 -0
  72. package/dist/repositories/vector-search.repository.d.ts.map +1 -0
  73. package/dist/repositories/vector-search.repository.js +377 -0
  74. package/dist/repositories/vector-search.repository.js.map +1 -0
  75. package/dist/server/http-server.d.ts.map +1 -1
  76. package/dist/server/http-server.js +25 -24
  77. package/dist/server/http-server.js.map +1 -1
  78. package/dist/server/index.d.ts +1 -0
  79. package/dist/server/index.d.ts.map +1 -1
  80. package/dist/server/index.js +7 -7
  81. package/dist/server/index.js.map +1 -1
  82. package/dist/services/alert-notification-service.d.ts +16 -0
  83. package/dist/services/alert-notification-service.d.ts.map +1 -0
  84. package/dist/services/alert-notification-service.js +44 -0
  85. package/dist/services/alert-notification-service.js.map +1 -0
  86. package/dist/services/async-optimizer.d.ts +62 -8
  87. package/dist/services/async-optimizer.d.ts.map +1 -1
  88. package/dist/services/async-optimizer.js +137 -8
  89. package/dist/services/async-optimizer.js.map +1 -1
  90. package/dist/services/batch-scheduler.d.ts +6 -0
  91. package/dist/services/batch-scheduler.d.ts.map +1 -1
  92. package/dist/services/batch-scheduler.js +59 -19
  93. package/dist/services/batch-scheduler.js.map +1 -1
  94. package/dist/services/cache-service.d.ts +32 -0
  95. package/dist/services/cache-service.d.ts.map +1 -1
  96. package/dist/services/cache-service.js +81 -6
  97. package/dist/services/cache-service.js.map +1 -1
  98. package/dist/services/database-optimizer.js +63 -63
  99. package/dist/services/database-optimizer.js.map +1 -1
  100. package/dist/services/embedding-migration-service.d.ts +24 -0
  101. package/dist/services/embedding-migration-service.d.ts.map +1 -0
  102. package/dist/services/embedding-migration-service.js +360 -0
  103. package/dist/services/embedding-migration-service.js.map +1 -0
  104. package/dist/services/embedding-provider-factory.d.ts +12 -5
  105. package/dist/services/embedding-provider-factory.d.ts.map +1 -1
  106. package/dist/services/embedding-provider-factory.js +107 -26
  107. package/dist/services/embedding-provider-factory.js.map +1 -1
  108. package/dist/services/forgetting-policy-service.js +17 -17
  109. package/dist/services/gemini-embedding-service.d.ts +1 -1
  110. package/dist/services/gemini-embedding-service.d.ts.map +1 -1
  111. package/dist/services/gemini-embedding-service.js +25 -18
  112. package/dist/services/gemini-embedding-service.js.map +1 -1
  113. package/dist/services/memory-embedding-service.d.ts +8 -0
  114. package/dist/services/memory-embedding-service.d.ts.map +1 -1
  115. package/dist/services/memory-embedding-service.js +180 -71
  116. package/dist/services/memory-embedding-service.js.map +1 -1
  117. package/dist/services/migration-history-service.d.ts +14 -0
  118. package/dist/services/migration-history-service.d.ts.map +1 -0
  119. package/dist/services/migration-history-service.js +270 -0
  120. package/dist/services/migration-history-service.js.map +1 -0
  121. package/dist/services/migration-monitor-service.d.ts +24 -0
  122. package/dist/services/migration-monitor-service.d.ts.map +1 -0
  123. package/dist/services/migration-monitor-service.js +93 -0
  124. package/dist/services/migration-monitor-service.js.map +1 -0
  125. package/dist/services/model-availability-service.d.ts +22 -0
  126. package/dist/services/model-availability-service.d.ts.map +1 -0
  127. package/dist/services/model-availability-service.js +140 -0
  128. package/dist/services/model-availability-service.js.map +1 -0
  129. package/dist/services/openai-embedding-service.d.ts +36 -0
  130. package/dist/services/openai-embedding-service.d.ts.map +1 -0
  131. package/dist/services/openai-embedding-service.js +192 -0
  132. package/dist/services/openai-embedding-service.js.map +1 -0
  133. package/dist/services/performance-monitor.d.ts +154 -10
  134. package/dist/services/performance-monitor.d.ts.map +1 -1
  135. package/dist/services/performance-monitor.js +446 -60
  136. package/dist/services/performance-monitor.js.map +1 -1
  137. package/dist/services/spaced-repetition/interval-calculation.service.d.ts +38 -0
  138. package/dist/services/spaced-repetition/interval-calculation.service.d.ts.map +1 -0
  139. package/dist/services/spaced-repetition/interval-calculation.service.js +105 -0
  140. package/dist/services/spaced-repetition/interval-calculation.service.js.map +1 -0
  141. package/dist/services/spaced-repetition/optimal-interval.service.d.ts +56 -0
  142. package/dist/services/spaced-repetition/optimal-interval.service.d.ts.map +1 -0
  143. package/dist/services/spaced-repetition/optimal-interval.service.js +163 -0
  144. package/dist/services/spaced-repetition/optimal-interval.service.js.map +1 -0
  145. package/dist/services/spaced-repetition/performance-analysis.service.d.ts +48 -0
  146. package/dist/services/spaced-repetition/performance-analysis.service.d.ts.map +1 -0
  147. package/dist/services/spaced-repetition/performance-analysis.service.js +174 -0
  148. package/dist/services/spaced-repetition/performance-analysis.service.js.map +1 -0
  149. package/dist/services/spaced-repetition/priority-calculation.service.d.ts +53 -0
  150. package/dist/services/spaced-repetition/priority-calculation.service.d.ts.map +1 -0
  151. package/dist/services/spaced-repetition/priority-calculation.service.js +161 -0
  152. package/dist/services/spaced-repetition/priority-calculation.service.js.map +1 -0
  153. package/dist/services/spaced-repetition/recall-probability.service.d.ts +36 -0
  154. package/dist/services/spaced-repetition/recall-probability.service.d.ts.map +1 -0
  155. package/dist/services/spaced-repetition/recall-probability.service.js +88 -0
  156. package/dist/services/spaced-repetition/recall-probability.service.js.map +1 -0
  157. package/dist/services/spaced-repetition/review-scheduling.service.d.ts +43 -0
  158. package/dist/services/spaced-repetition/review-scheduling.service.d.ts.map +1 -0
  159. package/dist/services/spaced-repetition/review-scheduling.service.js +130 -0
  160. package/dist/services/spaced-repetition/review-scheduling.service.js.map +1 -0
  161. package/dist/services/spaced-repetition/spaced-repetition-container.d.ts +69 -0
  162. package/dist/services/spaced-repetition/spaced-repetition-container.d.ts.map +1 -0
  163. package/dist/services/spaced-repetition/spaced-repetition-container.js +136 -0
  164. package/dist/services/spaced-repetition/spaced-repetition-container.js.map +1 -0
  165. package/dist/services/unified-embedding-service.d.ts +3 -0
  166. package/dist/services/unified-embedding-service.d.ts.map +1 -1
  167. package/dist/services/unified-embedding-service.js +58 -62
  168. package/dist/services/unified-embedding-service.js.map +1 -1
  169. package/dist/services/vector-compatibility-service.d.ts +68 -0
  170. package/dist/services/vector-compatibility-service.d.ts.map +1 -0
  171. package/dist/services/vector-compatibility-service.js +373 -0
  172. package/dist/services/vector-compatibility-service.js.map +1 -0
  173. package/dist/services/vector-search/vector-index-manager.d.ts +27 -0
  174. package/dist/services/vector-search/vector-index-manager.d.ts.map +1 -0
  175. package/dist/services/vector-search/vector-index-manager.js +66 -0
  176. package/dist/services/vector-search/vector-index-manager.js.map +1 -0
  177. package/dist/services/vector-search/vector-performance-tester.d.ts +30 -0
  178. package/dist/services/vector-search/vector-performance-tester.d.ts.map +1 -0
  179. package/dist/services/vector-search/vector-performance-tester.js +87 -0
  180. package/dist/services/vector-search/vector-performance-tester.js.map +1 -0
  181. package/dist/services/vector-search/vector-search-container.d.ts +41 -0
  182. package/dist/services/vector-search/vector-search-container.d.ts.map +1 -0
  183. package/dist/services/vector-search/vector-search-container.js +74 -0
  184. package/dist/services/vector-search/vector-search-container.js.map +1 -0
  185. package/dist/services/vector-search/vector-search-facade.d.ts +63 -0
  186. package/dist/services/vector-search/vector-search-facade.d.ts.map +1 -0
  187. package/dist/services/vector-search/vector-search-facade.js +91 -0
  188. package/dist/services/vector-search/vector-search-facade.js.map +1 -0
  189. package/dist/services/vector-search/vector-search-result-normalizer.d.ts +6 -0
  190. package/dist/services/vector-search/vector-search-result-normalizer.d.ts.map +1 -0
  191. package/dist/services/vector-search/vector-search-result-normalizer.js +65 -0
  192. package/dist/services/vector-search/vector-search-result-normalizer.js.map +1 -0
  193. package/dist/services/vector-search/vector-search.service.d.ts +33 -0
  194. package/dist/services/vector-search/vector-search.service.d.ts.map +1 -0
  195. package/dist/services/vector-search/vector-search.service.js +149 -0
  196. package/dist/services/vector-search/vector-search.service.js.map +1 -0
  197. package/dist/tools/forget-tool.js +14 -14
  198. package/dist/tools/pin-tool.js +14 -14
  199. package/dist/tools/unpin-tool.js +21 -21
  200. package/dist/types/alerts.types.d.ts +26 -0
  201. package/dist/types/alerts.types.d.ts.map +1 -0
  202. package/dist/types/alerts.types.js +2 -0
  203. package/dist/types/alerts.types.js.map +1 -0
  204. package/dist/types/embedding-provider-monitoring.types.d.ts +24 -0
  205. package/dist/types/embedding-provider-monitoring.types.d.ts.map +1 -0
  206. package/dist/types/embedding-provider-monitoring.types.js +2 -0
  207. package/dist/types/embedding-provider-monitoring.types.js.map +1 -0
  208. package/dist/types/embedding.types.d.ts +36 -1
  209. package/dist/types/embedding.types.d.ts.map +1 -1
  210. package/dist/types/migration.types.d.ts +131 -0
  211. package/dist/types/migration.types.d.ts.map +1 -0
  212. package/dist/types/migration.types.js +6 -0
  213. package/dist/types/migration.types.js.map +1 -0
  214. package/dist/types/spaced-repetition.types.d.ts +61 -0
  215. package/dist/types/spaced-repetition.types.d.ts.map +1 -0
  216. package/dist/types/spaced-repetition.types.js +6 -0
  217. package/dist/types/spaced-repetition.types.js.map +1 -0
  218. package/dist/types/vector-search.types.d.ts +96 -0
  219. package/dist/types/vector-search.types.d.ts.map +1 -0
  220. package/dist/types/vector-search.types.js +2 -0
  221. package/dist/types/vector-search.types.js.map +1 -0
  222. package/dist/utils/configuration-validator.d.ts +23 -0
  223. package/dist/utils/configuration-validator.d.ts.map +1 -0
  224. package/dist/utils/configuration-validator.js +102 -0
  225. package/dist/utils/configuration-validator.js.map +1 -0
  226. package/dist/utils/database.d.ts.map +1 -1
  227. package/dist/utils/database.js +101 -95
  228. package/dist/utils/database.js.map +1 -1
  229. package/dist/utils/environment-check.d.ts +8 -0
  230. package/dist/utils/environment-check.d.ts.map +1 -0
  231. package/dist/utils/environment-check.js +25 -0
  232. package/dist/utils/environment-check.js.map +1 -0
  233. package/dist/utils/logger.d.ts +8 -0
  234. package/dist/utils/logger.d.ts.map +1 -0
  235. package/dist/utils/logger.js +33 -0
  236. package/dist/utils/logger.js.map +1 -0
  237. package/package.json +139 -125
  238. package/scripts/auto-setup.js +233 -233
  239. package/scripts/backup-daily.bat +28 -28
  240. package/scripts/backup-embeddings.js +108 -108
  241. package/scripts/check-db-integrity.js +93 -93
  242. package/scripts/debug-embeddings.js +184 -184
  243. package/scripts/direct-sql-migration.sql +36 -36
  244. package/scripts/docker-migration.sh +105 -105
  245. package/scripts/fix-migration.js +93 -93
  246. package/scripts/fix-vector-dimensions.js +206 -206
  247. package/scripts/migrate-embedding-data.js +307 -307
  248. package/scripts/regenerate-embeddings.js +144 -144
  249. package/scripts/restore-legacy.ps1 +60 -60
  250. package/scripts/run-migration.js +122 -122
  251. package/scripts/safe-migration.js +150 -150
  252. package/scripts/simple-migrate.js +41 -41
  253. package/scripts/simple-update.js +123 -123
  254. package/src/database/schema.sql +234 -159
  255. package/.cursor/rules/cache-management.mdc +0 -171
  256. package/.cursor/rules/database-schema.mdc +0 -344
  257. package/.cursor/rules/deployment.mdc +0 -596
  258. package/.cursor/rules/error-logging.mdc +0 -298
  259. package/.cursor/rules/forgetting-algorithms.mdc +0 -426
  260. package/.cursor/rules/http-server.mdc +0 -432
  261. package/.cursor/rules/hybrid-search.mdc +0 -424
  262. package/.cursor/rules/implementation.mdc +0 -369
  263. package/.cursor/rules/lightweight-embedding.mdc +0 -178
  264. package/.cursor/rules/mcp-client-development.mdc +0 -0
  265. package/.cursor/rules/mcp-server-development.mdc +0 -0
  266. package/.cursor/rules/mcp-tools-architecture.mdc +0 -205
  267. package/.cursor/rules/memento-memory-rule.mdc +0 -8
  268. package/.cursor/rules/memento-project-overview.mdc +0 -0
  269. package/.cursor/rules/memory-algorithms.mdc +0 -502
  270. package/.cursor/rules/monitoring.mdc +0 -622
  271. package/.cursor/rules/performance-alerts.mdc +0 -537
  272. package/.cursor/rules/performance-monitoring.mdc +0 -345
  273. package/.cursor/rules/performance-optimization.mdc +0 -563
  274. package/.cursor/rules/project-structure.mdc +0 -310
  275. package/.cursor/rules/testing.mdc +0 -473
  276. package/.dockerignore +0 -15
  277. package/.eslintrc.json +0 -34
  278. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -51
  279. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -45
  280. package/.github/ISSUE_TEMPLATE/question.md +0 -31
  281. package/.github/PULL_REQUEST_TEMPLATE.md +0 -97
  282. package/AGENTS.md +0 -28
  283. package/CHANGELOG.md +0 -416
  284. package/CODE_OF_CONDUCT.md +0 -62
  285. package/CONTRIBUTING.md +0 -165
  286. package/DOCKER_SETUP_GUIDE.md +0 -84
  287. package/Dockerfile +0 -90
  288. package/backup/legacy-removal-20250930-201816/http-server-legacy.ts +0 -1068
  289. package/backup/legacy-removal-20250930-201816/rollback-to-legacy.ps1 +0 -46
  290. package/backup/legacy-removal-20250930-201816/rollback-to-legacy.sh +0 -48
  291. package/dist/server/index-backup.d.ts +0 -5
  292. package/dist/server/index-backup.d.ts.map +0 -1
  293. package/dist/server/index-backup.js +0 -793
  294. package/dist/server/index-backup.js.map +0 -1
  295. package/dist/server/index-refactored.d.ts +0 -6
  296. package/dist/server/index-refactored.d.ts.map +0 -1
  297. package/dist/server/index-refactored.js +0 -206
  298. package/dist/server/index-refactored.js.map +0 -1
  299. package/dist/services/performance-monitoring-integration.d.ts +0 -77
  300. package/dist/services/performance-monitoring-integration.d.ts.map +0 -1
  301. package/dist/services/performance-monitoring-integration.js +0 -177
  302. package/dist/services/performance-monitoring-integration.js.map +0 -1
  303. package/dist/test/debug-http-v2.d.ts +0 -5
  304. package/dist/test/debug-http-v2.d.ts.map +0 -1
  305. package/dist/test/debug-http-v2.js +0 -28
  306. package/dist/test/debug-http-v2.js.map +0 -1
  307. package/dist/test/performance-benchmark.d.ts +0 -57
  308. package/dist/test/performance-benchmark.d.ts.map +0 -1
  309. package/dist/test/performance-benchmark.js +0 -427
  310. package/dist/test/performance-benchmark.js.map +0 -1
  311. package/dist/test/test-alerts-direct.d.ts +0 -7
  312. package/dist/test/test-alerts-direct.d.ts.map +0 -1
  313. package/dist/test/test-alerts-direct.js +0 -101
  314. package/dist/test/test-alerts-direct.js.map +0 -1
  315. package/dist/test/test-batch-scheduler.d.ts +0 -2
  316. package/dist/test/test-batch-scheduler.d.ts.map +0 -1
  317. package/dist/test/test-batch-scheduler.js +0 -156
  318. package/dist/test/test-batch-scheduler.js.map +0 -1
  319. package/dist/test/test-client.d.ts +0 -5
  320. package/dist/test/test-client.d.ts.map +0 -1
  321. package/dist/test/test-client.js +0 -86
  322. package/dist/test/test-client.js.map +0 -1
  323. package/dist/test/test-embedding.d.ts +0 -6
  324. package/dist/test/test-embedding.d.ts.map +0 -1
  325. package/dist/test/test-embedding.js +0 -142
  326. package/dist/test/test-embedding.js.map +0 -1
  327. package/dist/test/test-error-logging.d.ts +0 -7
  328. package/dist/test/test-error-logging.d.ts.map +0 -1
  329. package/dist/test/test-error-logging.js +0 -105
  330. package/dist/test/test-error-logging.js.map +0 -1
  331. package/dist/test/test-forgetting.d.ts +0 -6
  332. package/dist/test/test-forgetting.d.ts.map +0 -1
  333. package/dist/test/test-forgetting.js +0 -154
  334. package/dist/test/test-forgetting.js.map +0 -1
  335. package/dist/test/test-gemini-embedding.d.ts +0 -7
  336. package/dist/test/test-gemini-embedding.d.ts.map +0 -1
  337. package/dist/test/test-gemini-embedding.js +0 -134
  338. package/dist/test/test-gemini-embedding.js.map +0 -1
  339. package/dist/test/test-http-server-v2-simple.d.ts +0 -6
  340. package/dist/test/test-http-server-v2-simple.d.ts.map +0 -1
  341. package/dist/test/test-http-server-v2-simple.js +0 -131
  342. package/dist/test/test-http-server-v2-simple.js.map +0 -1
  343. package/dist/test/test-http-server-v2.d.ts +0 -7
  344. package/dist/test/test-http-server-v2.d.ts.map +0 -1
  345. package/dist/test/test-http-server-v2.js +0 -529
  346. package/dist/test/test-http-server-v2.js.map +0 -1
  347. package/dist/test/test-lightweight-embedding.d.ts +0 -6
  348. package/dist/test/test-lightweight-embedding.d.ts.map +0 -1
  349. package/dist/test/test-lightweight-embedding.js +0 -189
  350. package/dist/test/test-lightweight-embedding.js.map +0 -1
  351. package/dist/test/test-m1-completion.d.ts +0 -7
  352. package/dist/test/test-m1-completion.d.ts.map +0 -1
  353. package/dist/test/test-m1-completion.js +0 -124
  354. package/dist/test/test-m1-completion.js.map +0 -1
  355. package/dist/test/test-memory-injection-prompt.d.ts +0 -2
  356. package/dist/test/test-memory-injection-prompt.d.ts.map +0 -1
  357. package/dist/test/test-memory-injection-prompt.js +0 -299
  358. package/dist/test/test-memory-injection-prompt.js.map +0 -1
  359. package/dist/test/test-performance-alerts.d.ts +0 -7
  360. package/dist/test/test-performance-alerts.d.ts.map +0 -1
  361. package/dist/test/test-performance-alerts.js +0 -109
  362. package/dist/test/test-performance-alerts.js.map +0 -1
  363. package/dist/test/test-performance-monitor.d.ts +0 -2
  364. package/dist/test/test-performance-monitor.d.ts.map +0 -1
  365. package/dist/test/test-performance-monitor.js +0 -182
  366. package/dist/test/test-performance-monitor.js.map +0 -1
  367. package/dist/test/test-performance-monitoring.d.ts +0 -6
  368. package/dist/test/test-performance-monitoring.d.ts.map +0 -1
  369. package/dist/test/test-performance-monitoring.js +0 -156
  370. package/dist/test/test-performance-monitoring.js.map +0 -1
  371. package/dist/test/test-search.d.ts +0 -5
  372. package/dist/test/test-search.d.ts.map +0 -1
  373. package/dist/test/test-search.js +0 -141
  374. package/dist/test/test-search.js.map +0 -1
  375. package/dist/test/test-simple-alerts.d.ts +0 -6
  376. package/dist/test/test-simple-alerts.d.ts.map +0 -1
  377. package/dist/test/test-simple-alerts.js +0 -106
  378. package/dist/test/test-simple-alerts.js.map +0 -1
  379. package/dist/test/test-vector-search-engine.d.ts +0 -2
  380. package/dist/test/test-vector-search-engine.d.ts.map +0 -1
  381. package/dist/test/test-vector-search-engine.js +0 -225
  382. package/dist/test/test-vector-search-engine.js.map +0 -1
  383. package/docker-compose.dev.yml +0 -50
  384. package/docker-compose.prod.yml +0 -77
  385. package/docker-compose.yml +0 -43
  386. package/docs/en/Memento-Goals.md +0 -217
  387. package/docs/en/Memento-M1-DetailSpecs.md +0 -130
  388. package/docs/en/Memento-Milestones.md +0 -135
  389. package/docs/en/Search-Ranking-Memory-Decay-Formulas.md +0 -177
  390. package/docs/en/api-reference.md +0 -658
  391. package/docs/en/architecture.md +0 -1302
  392. package/docs/en/developer-guide.md +0 -1005
  393. package/docs/en/user-manual.md +0 -595
  394. package/docs/ko/Memento-Goals.md +0 -217
  395. package/docs/ko/Memento-M1-DetailSpecs.md +0 -130
  396. package/docs/ko/Memento-Milestones.md +0 -134
  397. package/docs/ko/Search-Ranking-Memory-Decay-Formulas.md +0 -177
  398. package/docs/ko/api-reference.md +0 -658
  399. package/docs/ko/architecture.md +0 -1302
  400. package/docs/ko/developer-guide.md +0 -1006
  401. package/docs/ko/embedding-api-reference.md +0 -122
  402. package/docs/ko/embedding-configuration.md +0 -62
  403. package/docs/ko/embedding-performance-benchmark.md +0 -62
  404. package/docs/ko/embedding-service-guide.md +0 -314
  405. package/docs/ko/user-manual.md +0 -595
  406. package/env.example +0 -49
  407. package/install.sh +0 -191
  408. package/mcp-http-client.js +0 -218
  409. package/mcp.json +0 -0
  410. package/packages/mcp-client/docs/API-REFERENCE.md +0 -560
  411. package/packages/mcp-client/docs/BEST-PRACTICES.md +0 -564
  412. package/packages/mcp-client/docs/MIGRATION-GUIDE.md +0 -344
  413. package/packages/mcp-client/docs/PERFORMANCE-GUIDE.md +0 -476
  414. package/packages/mcp-client/docs/TROUBLESHOOTING.md +0 -564
  415. package/packages/mcp-client/package-lock.json +0 -907
  416. package/packages/mcp-client/package.json +0 -58
  417. package/packages/mcp-client/performance-optimizer.js +0 -428
  418. package/packages/mcp-client/test-basic.js +0 -65
  419. package/packages/mcp-client/test-integration.js +0 -366
  420. package/src/algorithms/forgetting-algorithm.spec.ts +0 -538
  421. package/src/algorithms/forgetting-algorithm.ts +0 -243
  422. package/src/algorithms/hybrid-search-engine.spec.ts +0 -484
  423. package/src/algorithms/hybrid-search-engine.ts +0 -489
  424. package/src/algorithms/search-engine.spec.ts +0 -429
  425. package/src/algorithms/search-engine.ts +0 -392
  426. package/src/algorithms/search-ranking.spec.ts +0 -293
  427. package/src/algorithms/search-ranking.ts +0 -407
  428. package/src/algorithms/spaced-repetition.spec.ts +0 -510
  429. package/src/algorithms/spaced-repetition.ts +0 -238
  430. package/src/algorithms/vector-search-engine.ts +0 -505
  431. package/src/client/index.spec.ts +0 -427
  432. package/src/client/index.ts +0 -222
  433. package/src/config/index.spec.ts +0 -339
  434. package/src/config/index.ts +0 -106
  435. package/src/database/init.spec.ts +0 -239
  436. package/src/database/init.ts +0 -130
  437. package/src/database/migrate.spec.ts +0 -293
  438. package/src/database/migrate.ts +0 -94
  439. package/src/database/migrations/001_add_embedding_metadata.sql +0 -29
  440. package/src/npm-client/context-injector.spec.ts +0 -335
  441. package/src/npm-client/context-injector.ts +0 -412
  442. package/src/npm-client/index.spec.ts +0 -108
  443. package/src/npm-client/index.ts +0 -96
  444. package/src/npm-client/memento-client.spec.ts +0 -549
  445. package/src/npm-client/memento-client.ts +0 -501
  446. package/src/npm-client/memory-manager.spec.ts +0 -374
  447. package/src/npm-client/memory-manager.ts +0 -414
  448. package/src/npm-client/types.spec.ts +0 -427
  449. package/src/npm-client/types.ts +0 -296
  450. package/src/npm-client/utils.spec.ts +0 -355
  451. package/src/npm-client/utils.ts +0 -423
  452. package/src/scripts/copy-assets.js +0 -37
  453. package/src/server/http-server.spec.ts +0 -648
  454. package/src/server/http-server.ts +0 -1030
  455. package/src/server/index-backup.ts +0 -875
  456. package/src/server/index-refactored.ts +0 -237
  457. package/src/server/index.spec.ts +0 -281
  458. package/src/server/index.ts +0 -347
  459. package/src/server/simple-mcp-server.spec.ts +0 -207
  460. package/src/server/simple-mcp-server.ts +0 -173
  461. package/src/services/async-optimizer.spec.ts +0 -569
  462. package/src/services/async-optimizer.ts +0 -484
  463. package/src/services/batch-scheduler.ts +0 -759
  464. package/src/services/cache-service.spec.ts +0 -372
  465. package/src/services/cache-service.ts +0 -434
  466. package/src/services/database-optimizer.spec.ts +0 -344
  467. package/src/services/database-optimizer.ts +0 -450
  468. package/src/services/embedding-provider-factory.ts +0 -173
  469. package/src/services/embedding-service.spec.ts +0 -342
  470. package/src/services/embedding-service.ts +0 -333
  471. package/src/services/error-logging-service.spec.ts +0 -416
  472. package/src/services/error-logging-service.ts +0 -383
  473. package/src/services/forgetting-policy-service.spec.ts +0 -140
  474. package/src/services/forgetting-policy-service.ts +0 -334
  475. package/src/services/gemini-embedding-service.spec.ts +0 -463
  476. package/src/services/gemini-embedding-service.ts +0 -283
  477. package/src/services/lightweight-embedding-service.spec.ts +0 -458
  478. package/src/services/lightweight-embedding-service.ts +0 -324
  479. package/src/services/memory-embedding-service.spec.ts +0 -417
  480. package/src/services/memory-embedding-service.ts +0 -289
  481. package/src/services/minilm-embedding-service.spec.ts +0 -104
  482. package/src/services/minilm-embedding-service.ts +0 -262
  483. package/src/services/performance-alert-service.spec.ts +0 -517
  484. package/src/services/performance-alert-service.ts +0 -477
  485. package/src/services/performance-monitor.spec.ts +0 -401
  486. package/src/services/performance-monitor.ts +0 -532
  487. package/src/services/performance-monitoring-integration.spec.ts +0 -478
  488. package/src/services/performance-monitoring-integration.ts.bak +0 -276
  489. package/src/services/unified-embedding-service.spec.ts +0 -224
  490. package/src/services/unified-embedding-service.ts +0 -255
  491. package/src/test/debug-http-v2.ts +0 -30
  492. package/src/test/embedding-integration-test.spec.ts +0 -295
  493. package/src/test/embedding-integration-test.ts +0 -295
  494. package/src/test/embedding-performance-benchmark.spec.ts +0 -354
  495. package/src/test/embedding-performance-benchmark.ts +0 -312
  496. package/src/test/performance-benchmark.ts +0 -565
  497. package/src/test/test-alerts-direct.ts +0 -136
  498. package/src/test/test-batch-scheduler-simple.spec.ts +0 -122
  499. package/src/test/test-batch-scheduler.spec.ts +0 -453
  500. package/src/test/test-batch-scheduler.ts +0 -182
  501. package/src/test/test-client.ts +0 -97
  502. package/src/test/test-embedding.ts +0 -153
  503. package/src/test/test-error-handling.spec.ts +0 -575
  504. package/src/test/test-error-logging.ts +0 -117
  505. package/src/test/test-forgetting.ts +0 -162
  506. package/src/test/test-gemini-embedding.ts +0 -159
  507. package/src/test/test-http-server-v2-simple.ts +0 -147
  508. package/src/test/test-http-server-v2.ts +0 -586
  509. package/src/test/test-hybrid-search-engine.spec.ts +0 -521
  510. package/src/test/test-integration-fixed.spec.ts +0 -612
  511. package/src/test/test-integration.spec.ts +0 -463
  512. package/src/test/test-lightweight-embedding.ts +0 -208
  513. package/src/test/test-m1-completion.spec.ts +0 -614
  514. package/src/test/test-m1-completion.ts +0 -141
  515. package/src/test/test-m1-integration.spec.ts +0 -514
  516. package/src/test/test-memory-injection-prompt.spec.ts +0 -650
  517. package/src/test/test-memory-injection-prompt.ts +0 -391
  518. package/src/test/test-performance-alerts.ts +0 -125
  519. package/src/test/test-performance-monitor-updates.spec.ts +0 -490
  520. package/src/test/test-performance-monitor.spec.ts +0 -284
  521. package/src/test/test-performance-monitor.ts +0 -228
  522. package/src/test/test-performance-monitoring.ts +0 -171
  523. package/src/test/test-search.ts +0 -151
  524. package/src/test/test-simple-alerts.ts +0 -136
  525. package/src/test/test-vector-search-engine.spec.ts +0 -408
  526. package/src/test/test-vector-search-engine.ts +0 -303
  527. package/src/tools/base-tool.ts +0 -189
  528. package/src/tools/cleanup-memory-tool.ts +0 -77
  529. package/src/tools/database-optimize-tool.ts +0 -79
  530. package/src/tools/error-stats.ts +0 -119
  531. package/src/tools/forget-tool.spec.ts +0 -613
  532. package/src/tools/forget-tool.ts +0 -454
  533. package/src/tools/forgetting-stats-tool.ts +0 -47
  534. package/src/tools/index.ts +0 -71
  535. package/src/tools/memory-injection-prompt.ts +0 -257
  536. package/src/tools/performance-alerts.ts +0 -226
  537. package/src/tools/performance-stats-tool.ts +0 -48
  538. package/src/tools/pin-tool.spec.ts +0 -497
  539. package/src/tools/pin-tool.ts +0 -277
  540. package/src/tools/recall-tool.spec.ts +0 -475
  541. package/src/tools/recall-tool.ts +0 -389
  542. package/src/tools/remember-tool.spec.ts +0 -469
  543. package/src/tools/remember-tool.ts +0 -112
  544. package/src/tools/resolve-error.ts +0 -69
  545. package/src/tools/tool-registry.ts +0 -417
  546. package/src/tools/types.ts +0 -63
  547. package/src/tools/unpin-tool.spec.ts +0 -549
  548. package/src/tools/unpin-tool.ts +0 -306
  549. package/src/types/embedding.types.ts +0 -78
  550. package/src/types/index.spec.ts +0 -420
  551. package/src/types/index.ts +0 -117
  552. package/src/utils/database.spec.ts +0 -77
  553. package/src/utils/database.ts +0 -458
  554. package/src/utils/stopwords.ts +0 -128
  555. package/start-docker-setup.bat +0 -38
  556. package/static/logo.png +0 -0
  557. package/static/memento_logo.svg +0 -2
  558. package/test-docker.js +0 -103
  559. package/tsconfig.json +0 -46
  560. package/vitest.config.ts +0 -23
@@ -1,43 +0,0 @@
1
- services:
2
- memento-mcp-server:
3
- build: .
4
- ports:
5
- - "9001:9001"
6
- environment:
7
- - NODE_ENV=production
8
- - DOCKER=true
9
- - DB_PATH=/app/data/memory.db
10
- - LOG_LEVEL=info
11
- - OPENAI_API_KEY=${OPENAI_API_KEY}
12
- - GEMINI_API_KEY=${GEMINI_API_KEY}
13
- - EMBEDDING_PROVIDER=${EMBEDDING_PROVIDER:-lightweight}
14
- - GEMINI_MODEL=${GEMINI_MODEL:-text-embedding-004}
15
- - EMBEDDING_DIMENSIONS=${EMBEDDING_DIMENSIONS:-512}
16
- - PORT=9001
17
- volumes:
18
- - ./data:/app/data
19
- - ./logs:/app/logs
20
- restart: unless-stopped
21
- user: root
22
- command: ["/app/start-container.sh"]
23
- stdin_open: true
24
- tty: true
25
- healthcheck:
26
- test: ["CMD", "curl", "-f", "http://localhost:9001/health"]
27
- interval: 30s
28
- timeout: 10s
29
- retries: 3
30
- start_period: 40s
31
-
32
- # Redis for caching (optional)
33
- # redis:
34
- # image: redis:7-alpine
35
- # ports:
36
- # - "6379:6379"
37
- # volumes:
38
- # - redis_data:/data
39
- # restart: unless-stopped
40
- # command: redis-server --appendonly yes
41
-
42
- volumes:
43
- redis_data:
@@ -1,217 +0,0 @@
1
- # Memento Goals
2
-
3
- ## 1. Goal Summary
4
-
5
- **Goal**: Provide storage+search+summary+forgetting mechanisms modeled after human memory systems (working memory, episodic memory, semantic memory, procedural memory) so that agents don't lose conversation/task context.
6
-
7
- **Non-goals**: Large-scale RAG platforms, general-purpose data lakes. Initially focus on personal/workspace-level long-term memory and conversation-session transitions.
8
-
9
- ### Rationale for Human Memory Model
10
-
11
- - **Episodic/Semantic Separation**: Tulving lineage – episodic is events, semantic is knowledge. The two systems are interdependent. [PMC](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2657600/) +1
12
-
13
- - **Working Memory**: Central executive, phonological loop, visuospatial memory components manage "currently processing information". [Simply Psychology](https://www.simplypsychology.org/working-memory.html) +1
14
-
15
- - **Forgetting/Spaced Repetition**: Ebbinghaus curve and "periodic reminders" are advantageous for long-term retention. [PMC](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2657600/) +1
16
-
17
- ### MCP Application Rationale
18
-
19
- MCP exposes Tools/Resources/Prompts as standards and can be easily connected from clients (Claude, ChatGPT, Cursor, etc.). [WorkOS](https://workos.com/) +3, [Model Context Protocol](https://modelcontextprotocol.io/) +3
20
-
21
- ## 2. System Overview (Components)
22
-
23
- ### Memory MCP Server
24
-
25
- - **Protocol**: MCP (spec 2025-03-26)
26
- - **Interface**: tools (memory write/search/pin/delete, etc.), resources (read-only views), prompts (context injection templates). [Model Context Protocol](https://modelcontextprotocol.io/) +1
27
-
28
- ### Storage
29
-
30
- - **Primary**: PostgreSQL + pgvector (managing vectors/metadata/transactions together). [GitHub](https://github.com/pgvector/pgvector) +1
31
- - **Alternative**: SQLite+FTS5 (+lancedb) for embedded, or Qdrant/Milvus for separation
32
-
33
- ### Embedding & Summary
34
-
35
- Text embedding models (sentence embeddings), "information compression summarizer (map-reduce)" pipeline.
36
-
37
- ### Scheduler/Worker
38
-
39
- "Sleep consolidation" batch (nighttime clustering, summarization, rule extraction), "forgetting/review" batch (re-exposure, deletion candidate selection).
40
-
41
- ## 3. Data Model (Corresponding to Human Memory)
42
-
43
- ### Core Tables
44
-
45
- #### memory_item
46
- - `id`, `type`(working|episodic|semantic|procedural), `title`, `content`, `source`(chat|tool|file|url), `agent_id`, `user_id`, `project_id`
47
- - `created_at`, `last_accessed_at`, `importance`(0~1), `pinned`(bool), `privacy_scope`(private|team|public), `origin_trace`(json)
48
-
49
- #### memory_embedding
50
- - `memory_id` FK, `embedding` vector, `dim`
51
-
52
- #### memory_tag (N:N)
53
- - Tags (e.g., tech:mariadb, pref:coffee, task:ads-settlement)
54
-
55
- #### memory_link
56
- - Relationships between memories (cause_of, derived_from, duplicates, contradicts) – semantic connection network
57
-
58
- #### feedback_event
59
- - `memory_id`, `event`(used|edited|neglected|helpful|not_helpful), `score`, `ts`
60
-
61
- ### Working Memory Buffer
62
-
63
- #### wm_buffer
64
- - `session_id`, `items`(json), `token_budget`, `expires_at`
65
-
66
- When session ends/token limit exceeded, transition to **episodic** snapshot.
67
-
68
- ## 4. Search, Ranking, Forgetting (Including Formulas)
69
-
70
- ### 4.1 Search Score
71
-
72
- Final score S:
73
-
74
- ```
75
- S = α * relevance + β * recency + γ * importance + δ * usage - ε * duplication_penalty
76
- ```
77
-
78
- - **relevance**: Cosine similarity (embedding) + keyword TF-IDF correction
79
- - **recency**: `exp(-λ * age_days)` (applying Ebbinghaus-type forgetting function; λ is domain-specific tuning) [PMC](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2657600/) +1
80
- - **importance**: Explicit/inferred ("user preferences, rules, long-term goals" get higher weights)
81
- - **usage**: Log scale of query/citation/reuse frequency
82
- - **duplication_penalty**: Deduction for similar items within clusters
83
-
84
- ### 4.2 Forgetting/Spaced Repetition
85
-
86
- - **Soft deletion candidate queue**: Items with low S and old `last_accessed_at` among non-pinned/non-policy items
87
- - **Retention policy**: Tag/scope-specific TTL (e.g., wm: 48h, episodic: 90d, semantic: indefinite)
88
- - **Spaced repetition**: High-importance items generate review events (card-form reminders) for re-exposure
89
-
90
- ### 4.3 Semantic Integration ("Sleep Consolidation")
91
-
92
- Cluster recent episodic → conflict/consistency check → generate semantic in rule/fact form
93
-
94
- Implement "fast episodic → slow semantic integration" using CLS hypothesis (hippocampus-neocortex complementary learning) as motif. [PubMed](https://pubmed.ncbi.nlm.nih.gov/) +1
95
-
96
- ## 5. MCP Interface Design (Tools/Resources/Prompts)
97
-
98
- ### 5.1 tools (Summarized Signatures)
99
-
100
- #### remember
101
- - **Input**: `content`, `type?`, `tags?`, `importance?`, `source?`, `privacy_scope?`
102
- - **Output**: `memory_id`
103
-
104
- #### recall
105
- - **Input**: `query`, `filters?`(type/tags/time/project/agent), `limit?`
106
- - **Output**: `items[]`(snippet, score, recall_reason)
107
-
108
- #### pin / unpin
109
-
110
- #### forget
111
- - Hard/soft deletion options, GDPR-style "right to erasure" support
112
-
113
- #### summarize_thread
114
- - Current session log → wm_buffer summary → episodic storage
115
-
116
- #### link
117
- - Create relationships between memories (cause, derivation, duplication, contradiction)
118
-
119
- #### export
120
- - NDJSON/Markdown/CSV export
121
-
122
- #### feedback
123
- - Collect usability/accuracy feedback (helpful, not_helpful, attach correct answers)
124
-
125
- **MCP Spec Rationale**: Standardize tools/resources/prompts so clients can automatically discover, call, and configure. [Model Context Protocol](https://modelcontextprotocol.io/) +1
126
-
127
- ### 5.2 resources
128
-
129
- - `memory/{id}`: Read-only single view
130
- - `memory/search?query=...`: Recent search result cache resource (useful for client-side preview)
131
-
132
- ### 5.3 prompts
133
-
134
- #### memory_injection
135
- - **Description**: "Before this turn's response, inject 'top 5 related memory summaries' as context"
136
- - **Parameters**: `query`, `token_budget`
137
-
138
- Easy for agents to use with MCP Prompts functionality. [Model Context Protocol](https://modelcontextprotocol.io/)
139
-
140
- ## 6. Agent Execution Flow
141
-
142
- 1. **WM Loading**: Organize current user message + previous n-turn summary in `wm_buffer`
143
- 2. **Query Construction**: `query = user_msg + task + wm_summary`
144
- 3. **recall call**:
145
- - Filter: `project_id`, `tags`, `type in {semantic, episodic}`
146
- - 1st ANN (vector) → 2nd rerank (BM25/keyword + rule match)
147
- - Deduplication & compression: map-reduce summary, record conflicts as `link(contradicts)`
148
- 4. **Prompt Injection**: Inject top K items with `prompts.memory_injection`
149
- 5. **After Response Generation**:
150
- - Record new facts/preferences/decisions with `remember`
151
- - Reflect `feedback(helpful)` signals
152
- 6. **Batch Work (Night)**: Clustering, summary integration, forgetting/reminder scheduling
153
-
154
- ## 7. Minimum Viable Product (MVP) Spec
155
-
156
- - Memory write/read/search/pin/delete tools
157
- - Initially support only episodic/semantic types (working memory as session cache)
158
- - **Score**: `S = 0.5*relevance + 0.2*recency + 0.2*importance + 0.1*usage`
159
- - **Retention**: episodic 90d, semantic indefinite, wm 48h
160
- - **Storage**: Postgres+pgvector, ivfflat index, cosine distance. [GitHub](https://github.com/pgvector/pgvector) +1
161
- - MCP `prompts.memory_injection` 1 type
162
-
163
- ## 8. Example: TypeScript MCP Server Skeleton
164
-
165
- ```typescript
166
- // package: mcp-memory-server
167
- import { Server } from "@modelcontextprotocol/sdk/server";
168
- import { z } from "zod";
169
- import { recall, remember, pin, unpin, forget, summarizeThread, link, exportMem, feedback } from "./tools";
170
-
171
- const server = new Server({ name: "mcp-memory", version: "0.1.0" });
172
-
173
- // Tools
174
- server.tool("remember", {
175
- schema: z.object({
176
- content: z.string(),
177
- type: z.enum(["episodic","semantic"]).default("episodic"),
178
- tags: z.array(z.string()).optional(),
179
- importance: z.number().min(0).max(1).default(0.5),
180
- source: z.string().optional(),
181
- privacy_scope: z.enum(["private","team","public"]).default("private")
182
- }),
183
- handler: remember
184
- });
185
-
186
- server.tool("recall", {
187
- schema: z.object({
188
- query: z.string(),
189
- filters: z.object({
190
- type: z.array(z.enum(["episodic","semantic"])).optional(),
191
- tags: z.array(z.string()).optional(),
192
- project_id: z.string().optional(),
193
- time_from: z.string().optional(),
194
- time_to: z.string().optional()
195
- }).optional(),
196
- limit: z.number().default(8)
197
- }),
198
- handler: recall
199
- });
200
-
201
- // ... register pin/unpin/forget/summarizeThread/link/export/feedback ...
202
-
203
- // Resources
204
- server.resource("memory/{id}", async (params) => {/* read-only view */});
205
-
206
- // Prompts
207
- server.prompt("memory_injection", {
208
- params: [{ name: "query", required: true }, { name: "token_budget", required: false }],
209
- getPrompt: async ({ query, token_budget = 1200 }) => {
210
- const items = await recall({ query, limit: 6 });
211
- const summary = await compress(items, token_budget);
212
- return [{ role: "system", content: `Related long-term memory summary:\n${summary}` }];
213
- }
214
- });
215
-
216
- server.start();
217
- ```
@@ -1,130 +0,0 @@
1
- # MCP Memory Server M1 Detailed Design Document
2
-
3
- ## 1. Purpose
4
-
5
- This stage (M1) aims to implement a lightweight memory assistant MCP server that can be easily run by individual users in a local environment.
6
- The database uses SQLite embedded DB that can be used without separate installation, and provides basic functions such as memory storage, search, deletion, and pinning through the MCP interface.
7
-
8
- ## 2. Overall Architecture
9
-
10
- - **Client**: IDE supporting MCP (e.g., Cursor) or AI Agent
11
- - **Server**: MCP Memory Server (Node.js/TypeScript based)
12
- - **Storage**: SQLite database (memory.db file)
13
-
14
- **Structure**:
15
- ```
16
- [Client/Agent] ↔ [MCP Memory Server] ↔ [SQLite DB (memory.db)]
17
- ```
18
-
19
- ## 3. Feature Scope
20
-
21
- ### Memory Storage (remember)
22
- - **Input**: content, type, tags, importance, privacy_scope
23
- - **Output**: memory_id
24
- - **Action**: Store text in DB, generate embedding and record in vector column
25
-
26
- ### Memory Search (recall)
27
- - **Input**: query, filters(type, tags, date), limit
28
- - **Output**: List of related memories
29
- - **Action**: Combine FTS5 (keyword) + VSS (vector search)
30
-
31
- ### Memory Deletion (forget)
32
- - **Soft Delete**: Automatically removed when TTL expires
33
- - **Hard Delete**: Direct user call
34
-
35
- ### Memory Pin/Unpin (pin/unpin)
36
- - Exclude specific memories from TTL and forgetting policies
37
-
38
- ## 4. Database Design (SQLite)
39
-
40
- ### 4.1 Main Table
41
-
42
- ```sql
43
- CREATE TABLE memory_item (
44
- id TEXT PRIMARY KEY,
45
- type TEXT CHECK (type IN ('working','episodic','semantic','procedural')),
46
- content TEXT,
47
- importance REAL,
48
- privacy_scope TEXT CHECK (privacy_scope IN ('private','team','public')) DEFAULT 'private',
49
- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
50
- last_accessed TIMESTAMP,
51
- pinned BOOLEAN DEFAULT FALSE
52
- );
53
- ```
54
-
55
- ### 4.2 Indexes
56
-
57
- #### FTS5 (Text Search)
58
- ```sql
59
- CREATE VIRTUAL TABLE memory_item_fts USING fts5(content);
60
- ```
61
-
62
- #### VSS (Vector Search, 1536-dimensional example)
63
- ```sql
64
- CREATE VIRTUAL TABLE memory_item_vss USING vss0(embedding(1536));
65
- ```
66
-
67
- ## 5. MCP Interface (M1 Limited)
68
-
69
- ### Tools
70
- - `remember(content, type?, tags?, importance?, privacy_scope?)`
71
- - `recall(query, filters?, limit?)`
72
- - `forget(id, hard?)`
73
- - `pin(id)` / `unpin(id)`
74
-
75
- ### Resources
76
- - `memory/{id}` (read single memory)
77
-
78
- ### Prompts
79
- - `memory_injection(query, token_budget)`
80
- - Inject top 5 related memories summarized into prompt
81
-
82
- ## 6. Forgetting Policy
83
-
84
- - **Working Memory**: Deleted after 48 hours
85
- - **Episodic Memory**: Maintained for 90 days
86
- - **Semantic Memory**: Indefinite
87
- - **Pinned**: Excluded from deletion targets
88
-
89
- Periodically run batch jobs (cron jobs) to clean up expired records.
90
-
91
- ## 7. Operation Flow
92
-
93
- ### Memory Storage
94
- 1. User calls `remember`
95
- 2. Record in DB → Update FTS5 index → Generate embedding and record in VSS table
96
-
97
- ### Memory Search
98
- 1. User calls `recall`
99
- 2. Keyword search with FTS5 → Vector search with VSS → Sum scores → Return top K results
100
-
101
- ### Forgetting/Deletion
102
- 1. Batch job deletes TTL expired items
103
- 2. Immediate removal when user calls `forget`
104
-
105
- ## 8. Operations and Deployment
106
-
107
- - **Runtime Environment**: Node.js (v20 or higher)
108
- - **Deployment Method**: Local execution
109
- ```bash
110
- node memory-server.js
111
- ```
112
- - **DB Management**: Single memory.db file (stored in local storage)
113
- - **Backup/Restore**: Can be handled by file copying
114
-
115
- ## 9. Limitations and Next Stage Considerations
116
-
117
- **Limitations**: Single user only, no permission management
118
-
119
- **Expansion Considerations**:
120
- - Add API Key authentication in M2
121
- - Switch to SQLite server mode
122
- - Plan to enable team collaboration using ACL (user_id, privacy_scope)
123
-
124
- ## 10. Checklist
125
-
126
- - [ ] SQLite DB initial schema creation completed
127
- - [ ] MCP Tools (remember, recall, forget, pin/unpin) implementation completed
128
- - [ ] FTS5 + VSS based search working properly
129
- - [ ] TTL based forgetting policy batch script applied
130
- - [ ] MCP Client integration testing completed in local environment
@@ -1,135 +0,0 @@
1
- # 📄 MCP Memory Server Design and Milestones Document
2
- ## 🎯 Vision
3
-
4
- Implement an AI Agent memory assistant MCP server that mimics human memory structure (working memory, episodic memory, semantic memory).
5
-
6
- - Personal (MVP): Single SQLite file based, lightweight local execution
7
- - Team: Internal network only server + single API Key, SQLite + serialization queue
8
- - Organization: Postgres + pgvector + JWT authentication, SSO/LDAP integration
9
-
10
- ## 🛠 Milestone Overview
11
-
12
- | Stage | Target | Storage | Authentication | Security Scope | Operation Method |
13
- |-------|--------|---------|----------------|----------------|------------------|
14
- | M1 | Personal | SQLite Embedded | None | Local | Local execution |
15
- | M2 | Team | SQLite Server Mode (WAL + serialization queue) | Single API Key | Internal network only | Docker single container |
16
- | M3 | Organization Entry | Postgres + pgvector | JWT (user-specific tokens) | Internal network or VPN | Docker Compose (server+DB) |
17
- | M4 | Organization Expansion | Postgres + HA configuration | JWT + RBAC + SSO/LDAP | Enterprise security policy compliance | Kubernetes/Cloud RDS |
18
-
19
- ## ⚙️ Stage-by-Stage Design
20
-
21
- ### 🔹 M1. Personal Use (MVP)
22
-
23
- - **DB**: SQLite (memory.db)
24
- - **Indexes**: FTS5, sqlite-vec (vector search)
25
- - **MCP Tools**: remember, recall, forget, pin
26
- - **Forgetting Policy**: TTL-based (working 48h, episodic 90d, semantic indefinite)
27
- - **Operation**: Local execution (node memory-server.js)
28
-
29
- ### 🔹 M2. Team Collaboration (Internal Network Only Server)
30
-
31
- - **DB**: SQLite (WAL mode)
32
- - **Write Processing**: Server-level queuing → serialization
33
- - **Read Processing**: Multiple concurrent reads possible
34
- - **Authentication**: Single API Key (API_KEY=team-secret-key)
35
- - **Security**: Internal network only (external ports blocked)
36
- - **Operation**: Docker single container
37
-
38
- ```yaml
39
- services:
40
- memory-server:
41
- build: .
42
- ports:
43
- - "8080:8080"
44
- volumes:
45
- - ./data:/app/data
46
- environment:
47
- - DB_PATH=/app/data/memory.db
48
- - API_KEY=team-secret-key
49
- ```
50
-
51
- - **ACL**: Apply privacy_scope (private | team)
52
-
53
- ### 🔹 M3. Organization Entry (Postgres Migration)
54
-
55
- - **DB**: Postgres 15+, pgvector extension
56
-
57
- **Schema**:
58
-
59
- ```sql
60
- CREATE TABLE memory_item (
61
- id UUID PRIMARY KEY,
62
- user_id TEXT NOT NULL,
63
- project_id TEXT,
64
- type TEXT CHECK (type IN ('working','episodic','semantic','procedural')),
65
- content TEXT,
66
- importance REAL,
67
- privacy_scope TEXT CHECK (privacy_scope IN ('private','team','public')) DEFAULT 'private',
68
- created_at TIMESTAMPTZ DEFAULT now(),
69
- last_accessed TIMESTAMPTZ,
70
- embedding vector(1536),
71
- content_tsv tsvector GENERATED ALWAYS AS (to_tsvector('english', content)) STORED
72
- );
73
- CREATE INDEX ON memory_item USING ivfflat (embedding vector_cosine_ops) WITH (lists = 100);
74
- CREATE INDEX ON memory_item USING GIN (content_tsv);
75
- ```
76
-
77
- - **Authentication**: JWT-based user-specific tokens (including user_id claim)
78
- - **Security**: Internal network or VPN restriction
79
- - **Operation**: Docker Compose (Memory Server + Postgres)
80
-
81
- ### 🔹 M4. Organization Expansion (High Availability + Enterprise Security)
82
-
83
- - **DB**: Postgres cluster (HA configuration, cloud RDS possible)
84
- - **Authentication**: JWT + RBAC + SSO/LDAP integration
85
- - **Permission Model**:
86
- - privacy_scope: private/team/public
87
- - project_id: workspace unit
88
- - RBAC (Role-Based Access Control) → admin/editor/viewer
89
- - **Operation**: Kubernetes, Helm Chart deployment, monitoring (Prometheus)
90
- - **Additional Features**: Auto archiving, backup/restore, GDPR-style deletion
91
-
92
- ## 📦 MCP Interface (Common)
93
-
94
- ### Tools
95
-
96
- - `remember(content, type, tags?, importance?, privacy_scope?)`
97
- - `recall(query, filters?, limit?)`
98
- - `pin(id), unpin(id)`
99
- - `forget(id, hard?)`
100
- - `summarize_thread(session_id)`
101
- - `link(src, dst, rel)`
102
- - `export(format)`
103
- - `feedback(memory_id, helpful?)`
104
-
105
- ### Resources
106
-
107
- - `memory/{id}`
108
- - `memory/search?query=...`
109
-
110
- ### Prompts
111
-
112
- - `memory_injection(query, token_budget)` → Inject top K related memories summarized
113
-
114
- ## 🔐 Security Model Summary
115
-
116
- - **M1**: None (local only)
117
- - **M2**: Single API Key (team shared)
118
- - **M3**: JWT (user-specific tokens, can integrate with organization account server)
119
- - **M4**: JWT + RBAC + SSO/LDAP → Enterprise security policy compliance
120
-
121
- ## 📑 Migration Guide Summary
122
-
123
- 1. Extract memory_item.csv from SQLite
124
- 2. Create schema in Postgres (pgvector, tsvector)
125
- 3. CSV import → `\copy`
126
- 4. Recalculate and update embeddings
127
- 5. Replace only DB driver in MCP Memory Server
128
-
129
- ## ✅ Checklist
130
-
131
- - [ ] Personal SQLite server completed
132
- - [ ] Team stage Docker deployment + API Key applied
133
- - [ ] Postgres migration documentation completed
134
- - [ ] Organization stage JWT authentication integration
135
- - [ ] Roadmap for SSO/LDAP integration confirmed