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,1005 +0,0 @@
1
- # Developer Guide
2
-
3
- ## Overview
4
-
5
- This guide explains the development environment setup, architecture understanding, and contribution methods for Memento MCP Server.
6
-
7
- ## Table of Contents
8
-
9
- 1. [Development Environment Setup](#development-environment-setup)
10
- 2. [Project Structure](#project-structure)
11
- 3. [Architecture Understanding](#architecture-understanding)
12
- 4. [Development Workflow](#development-workflow)
13
- 5. [Test Writing](#test-writing)
14
- 6. [Contribution Methods](#contribution-methods)
15
-
16
- ## Development Environment Setup
17
-
18
- ### Prerequisites
19
-
20
- - **Node.js**: 20.0.0 or higher (package.json standard)
21
- - **npm**: 10.0.0 or higher
22
-
23
- ### Repository Guidelines (`AGENTS.md`)
24
-
25
- The project includes developer guidelines:
26
-
27
- - **Project Structure**: Module organization under `src/`
28
- - **Build/Test Commands**: `npm run dev`, `npm run build`, `npm run test`, etc.
29
- - **Coding Style**: Node.js ≥ 20, TypeScript ES modules, 2-space indentation
30
- - **Testing Guidelines**: Vitest based with clear naming conventions:
31
- - Unit Tests (`.spec.ts`): Place in module directories (e.g., `src/algorithms/search-engine.spec.ts`)
32
- - E2E Tests (`test-*.ts`): Place in `src/test/` directory (e.g., `src/test/test-client.ts`)
33
- - **Commit/PR Guidelines**: Conventional Commits, Korean context included
34
- - **Environment/Database**: `.env` configuration, `data/` folder management
35
- - **TypeScript**: 5.3.0 (actual implementation standard)
36
- - **Git**: 2.30.0 or higher
37
-
38
- ### Development Tools
39
-
40
- - **IDE**: VS Code (recommended)
41
- - **Extensions**:
42
- - TypeScript and JavaScript Language Features
43
- - ESLint
44
- - Prettier
45
- - Vitest (actually used)
46
- - GitLens
47
-
48
- ### Environment Setup
49
-
50
- #### 1. Clone Repository
51
-
52
- ```bash
53
- git clone https://github.com/your-org/memento.git
54
- cd memento
55
- ```
56
-
57
- #### 2. Install Dependencies
58
-
59
- ```bash
60
- # Install all dependencies (package.json standard)
61
- npm install
62
-
63
- # Actually used dependencies:
64
- # - @modelcontextprotocol/sdk: ^0.5.0
65
- # - better-sqlite3: ^12.4.1
66
- # - express: ^5.1.0
67
- # - cors: ^2.8.5
68
- # - ws: ^8.18.3
69
- # - zod: ^3.22.4
70
- # - uuid: ^9.0.1
71
- # - openai: ^4.20.1
72
- # - dotenv: ^16.3.1
73
- # - vitest: ^1.0.0 (test)
74
- # - tsx: ^4.6.0 (development)
75
- ```
76
-
77
- #### 3. Environment Variable Setup
78
-
79
- ```bash
80
- # Copy environment variable file
81
- cp .env.example .env
82
-
83
- # Edit environment variables
84
- # Edit .env file to enter necessary settings
85
- ```
86
-
87
- #### 4. Database Initialization
88
-
89
- ```bash
90
- # Initialize better-sqlite3 database
91
- npm run db:init
92
-
93
- # Database migration
94
- npm run db:migrate
95
- ```
96
-
97
- #### 5. Start Development Server
98
-
99
- ```bash
100
- # MCP server development mode (hot reload)
101
- npm run dev
102
-
103
- # HTTP/WebSocket server development mode
104
- npm run dev:http
105
-
106
- # Run tests in separate terminal
107
- npm run test -- --watch
108
- ```
109
-
110
- ### VS Code Setup
111
-
112
- #### .vscode/settings.json
113
-
114
- ```json
115
- {
116
- "typescript.preferences.importModuleSpecifier": "relative",
117
- "editor.formatOnSave": true,
118
- "editor.codeActionsOnSave": {
119
- "source.fixAll.eslint": true
120
- },
121
- "vitest.commandLine": "npm run test",
122
- "vitest.autoRun": "watch"
123
- }
124
- ```
125
-
126
- #### .vscode/launch.json
127
-
128
- ```json
129
- {
130
- "version": "0.2.0",
131
- "configurations": [
132
- {
133
- "name": "Debug MCP Server",
134
- "type": "node",
135
- "request": "launch",
136
- "program": "${workspaceFolder}/src/server/index.ts",
137
- "outFiles": ["${workspaceFolder}/dist/**/*.js"],
138
- "env": {
139
- "NODE_ENV": "development"
140
- },
141
- "console": "integratedTerminal"
142
- },
143
- {
144
- "name": "Debug Tests",
145
- "type": "node",
146
- "request": "launch",
147
- "program": "${workspaceFolder}/node_modules/.bin/vitest",
148
- "args": ["--run"],
149
- "console": "integratedTerminal",
150
- "internalConsoleOptions": "neverOpen"
151
- }
152
- ]
153
- }
154
- ```
155
-
156
- ## Project Structure
157
-
158
- ### New Service Layer (`src/services/`)
159
-
160
- Memento has introduced a new service layer to separate external API integration and complex business logic.
161
-
162
- ```
163
- src/services/
164
- ├── embedding-service.ts # OpenAI embedding service (196 lines)
165
- ├── memory-embedding-service.ts # Memory embedding service (237 lines)
166
- ├── lightweight-embedding-service.ts # Lightweight hybrid embedding service (321 lines)
167
- ├── forgetting-policy-service.ts # Forgetting policy service (335 lines)
168
- ├── async-optimizer.ts # Async processing optimization (447 lines)
169
- ├── cache-service.ts # Cache service (352 lines)
170
- ├── database-optimizer.ts # Database optimization (442 lines)
171
- └── performance-monitor.ts # Performance monitoring (367 lines)
172
- ```
173
-
174
- **Service Layer Role**:
175
- - **External API Integration**: OpenAI API, database integration
176
- - **Business Logic**: Embedding generation, vector search, similarity calculation
177
- - **Error Handling**: API call failures, retry logic
178
- - **Caching**: Embedding result caching, performance optimization
179
- - **Fallback Solution**: Lightweight hybrid embedding service as OpenAI API replacement
180
- - **Performance Optimization**: Async processing, cache management, database optimization
181
- - **Monitoring**: Real-time performance metrics collection and analysis
182
-
183
- ### Hybrid Search Engine (`src/algorithms/hybrid-search-engine.ts`)
184
-
185
- Hybrid search functionality has been added to the existing search engine.
186
-
187
- ```
188
- src/algorithms/
189
- ├── search-engine.ts # Basic search engine (233 lines)
190
- ├── hybrid-search-engine.ts # Hybrid search engine (200 lines)
191
- └── search-ranking.ts # Search ranking algorithm
192
- ```
193
-
194
- **Hybrid Search Features**:
195
- - **FTS5 + Vector Search**: Combination of text search and vector search
196
- - **Weight Adjustment**: Vector 60%, Text 40% (default)
197
- - **Score Normalization**: Normalize scores to 0-1 range
198
- - **Result Combination**: Final score integrating two search results
199
-
200
- ### Complete Project Structure
201
-
202
- ```
203
- memento/
204
- ├── src/ # Source code
205
- │ ├── server/ # MCP server
206
- │ │ ├── index.ts # Server entry point (521 lines)
207
- │ │ ├── tools/ # MCP Tools implementation
208
- │ │ │ ├── remember.ts # remember tool
209
- │ │ │ ├── recall.ts # recall tool
210
- │ │ │ ├── pin.ts # pin/unpin tool
211
- │ │ │ ├── forget.ts # forget tool
212
- │ │ │ ├── summarize-thread.ts
213
- │ │ │ ├── link.ts # link tool
214
- │ │ │ ├── export.ts # export tool
215
- │ │ │ ├── feedback.ts # feedback tool
216
- │ │ │ └── index.ts # tool exports
217
- │ │ ├── resources/ # MCP Resources implementation
218
- │ │ │ ├── memory.ts # memory/{id} resource
219
- │ │ │ ├── search.ts # memory/search resource
220
- │ │ │ └── index.ts
221
- │ │ ├── prompts/ # MCP Prompts implementation
222
- │ │ │ ├── memory-injection.ts
223
- │ │ │ └── index.ts
224
- │ │ ├── database/ # Database related
225
- │ │ │ ├── sqlite.ts # SQLite implementation
226
- │ │ │ ├── postgres.ts # PostgreSQL implementation
227
- │ │ │ ├── migrations/ # Migrations
228
- │ │ │ └── index.ts
229
- │ │ └── middleware/ # Middleware
230
- │ │ ├── auth.ts # Authentication middleware
231
- │ │ ├── logging.ts # Logging middleware
232
- │ │ └── error.ts # Error handling middleware
233
- │ ├── client/ # MCP client
234
- │ │ ├── index.ts # Client entry point
235
- │ │ ├── memory-manager.ts # Memory manager
236
- │ │ ├── mcp-client.ts # MCP client wrapper
237
- │ │ └── types.ts # Client types
238
- │ ├── algorithms/ # Search and forgetting algorithms
239
- │ │ ├── search-ranking.ts # Search ranking algorithm
240
- │ │ ├── forgetting.ts # Forgetting algorithm
241
- │ │ ├── spaced-review.ts # Spaced repetition algorithm
242
- │ │ └── index.ts
243
- │ └── shared/ # Common utilities
244
- │ ├── types.ts # Common type definitions
245
- │ ├── utils.ts # Utility functions
246
- │ ├── constants.ts # Constant definitions
247
- │ └── validation.ts # Validation functions
248
- ├── tests/ # Test code
249
- │ ├── unit/ # Unit tests
250
- │ │ ├── tools/ # Tool tests
251
- │ │ ├── algorithms/ # Algorithm tests
252
- │ │ └── utils/ # Utility tests
253
- │ ├── integration/ # Integration tests
254
- │ │ ├── mcp-server.test.ts # MCP server integration test
255
- │ │ └── database.test.ts # Database integration test
256
- │ ├── e2e/ # E2E tests
257
- │ │ └── memory-workflow.test.ts
258
- │ └── fixtures/ # Test data
259
- │ ├── memories.json # Sample memory data
260
- │ └── test-db.sql # Test database
261
- ├── docs/ # Documentation
262
- ├── scripts/ # Build and deployment scripts
263
- │ ├── build.js # Build script
264
- │ ├── deploy.js # Deployment script
265
- │ └── db-migrate.js # Database migration
266
- ├── docker/ # Docker related files
267
- │ ├── Dockerfile # M1 Dockerfile
268
- │ ├── Dockerfile.m3 # M3 Dockerfile
269
- │ ├── docker-compose.dev.yml # Development environment
270
- │ ├── docker-compose.team.yml # Team environment
271
- │ └── docker-compose.org.yml # Organization environment
272
- ├── .cursor/rules/ # Cursor development rules
273
- ├── .github/ # GitHub Actions
274
- │ └── workflows/
275
- │ ├── ci.yml # CI pipeline
276
- │ ├── test.yml # Test pipeline
277
- │ └── deploy.yml # Deployment pipeline
278
- ├── package.json # Project configuration
279
- ├── tsconfig.json # TypeScript configuration
280
- ├── jest.config.js # Jest configuration
281
- ├── .eslintrc.js # ESLint configuration
282
- ├── .prettierrc # Prettier configuration
283
- └── README.md # Project documentation
284
- ```
285
-
286
- ## Architecture Understanding
287
-
288
- ### Overall Architecture
289
-
290
- ```mermaid
291
- graph TB
292
- subgraph "AI Agent Layer"
293
- A[Claude Desktop] --> B[MCP Client]
294
- C[ChatGPT] --> B
295
- D[Cursor] --> B
296
- end
297
-
298
- subgraph "MCP Protocol Layer"
299
- B --> E[MCP Memory Server]
300
- end
301
-
302
- subgraph "Memory Management Layer"
303
- E --> F[Memory Manager]
304
- E --> G[Search Engine]
305
- E --> H[Forgetting Policy]
306
- end
307
-
308
- subgraph "Storage Layer"
309
- F --> I[SQLite M1]
310
- F --> J[PostgreSQL M3+]
311
- G --> K[Vector Search]
312
- G --> L[Text Search]
313
- end
314
- ```
315
-
316
- ### Core Components
317
-
318
- #### 1. MCP Server (`src/server/`)
319
-
320
- The core server implementing the MCP protocol.
321
-
322
- **Key Files**:
323
- - `index.ts`: Server entry point, MCP server initialization
324
- - `tools/`: MCP Tools implementation
325
- - `resources/`: MCP Resources implementation
326
- - `prompts/`: MCP Prompts implementation
327
-
328
- **Example Code**:
329
- ```typescript
330
- // src/server/index.ts
331
- import { Server } from '@modelcontextprotocol/sdk/server';
332
- import { rememberTool } from './tools/remember';
333
- import { recallTool } from './tools/recall';
334
-
335
- const server = new Server({
336
- name: 'memento-memory-server',
337
- version: '0.1.0'
338
- });
339
-
340
- // Register tools
341
- server.tool('remember', rememberTool);
342
- server.tool('recall', recallTool);
343
-
344
- // Start server
345
- server.start();
346
- ```
347
-
348
- #### 2. Search Engine (`src/algorithms/`)
349
-
350
- Implements algorithms for memory search.
351
-
352
- **Key Files**:
353
- - `search-ranking.ts`: Search ranking algorithm
354
- - `forgetting.ts`: Forgetting algorithm
355
- - `spaced-review.ts`: Spaced repetition algorithm
356
-
357
- **Example Code**:
358
- ```typescript
359
- // src/algorithms/search-ranking.ts
360
- export class SearchRanking {
361
- calculateFinalScore(features: SearchFeatures): number {
362
- return this.ALPHA * features.relevance +
363
- this.BETA * features.recency +
364
- this.GAMMA * features.importance +
365
- this.DELTA * features.usage -
366
- this.EPSILON * features.duplication_penalty;
367
- }
368
- }
369
- ```
370
-
371
- #### 3. Database Layer (`src/server/database/`)
372
-
373
- Handles data storage and retrieval.
374
-
375
- **Key Files**:
376
- - `sqlite.ts`: SQLite implementation (M1)
377
- - `postgres.ts`: PostgreSQL implementation (M3+)
378
- - `migrations/`: Database migrations
379
-
380
- ### Data Flow
381
-
382
- #### 1. Memory Storage Flow
383
-
384
- ```
385
- AI Agent → MCP Client → MCP Server → Memory Manager → Database
386
- ```
387
-
388
- #### 2. Memory Search Flow
389
-
390
- ```
391
- AI Agent → MCP Client → MCP Server → Search Engine → Database → Ranking → Results
392
- ```
393
-
394
- ## Development Workflow
395
-
396
- ### 1. Feature Development
397
-
398
- #### Create Branch
399
-
400
- ```bash
401
- # Create feature branch
402
- git checkout -b feature/new-tool
403
-
404
- # Or bug fix branch
405
- git checkout -b fix/memory-leak
406
- ```
407
-
408
- #### Development Progress
409
-
410
- ```bash
411
- # Start development server
412
- npm run dev
413
-
414
- # Run tests (separate terminal)
415
- npm run test:watch
416
-
417
- # Code formatting
418
- npm run format
419
-
420
- # Lint check
421
- npm run lint
422
- ```
423
-
424
- #### Commit
425
-
426
- ```bash
427
- # Stage changes
428
- git add .
429
-
430
- # Commit (conventional commit format)
431
- git commit -m "feat: add new summarize_thread tool"
432
-
433
- # Push
434
- git push origin feature/new-tool
435
- ```
436
-
437
- ### 2. Test Writing
438
-
439
- #### Unit Tests
440
-
441
- ```typescript
442
- // tests/unit/tools/remember.test.ts
443
- import { RememberTool } from '@/server/tools/remember';
444
- import { MockDatabase } from '@/tests/mocks/database.mock';
445
-
446
- describe('RememberTool', () => {
447
- let rememberTool: RememberTool;
448
- let mockDatabase: MockDatabase;
449
-
450
- beforeEach(() => {
451
- mockDatabase = new MockDatabase();
452
- rememberTool = new RememberTool(mockDatabase);
453
- });
454
-
455
- it('should create memory with valid parameters', async () => {
456
- // Given
457
- const params = {
458
- content: 'Test memory',
459
- type: 'episodic',
460
- importance: 0.8
461
- };
462
-
463
- // When
464
- const result = await rememberTool.execute(params);
465
-
466
- // Then
467
- expect(result.memory_id).toBeDefined();
468
- expect(mockDatabase.createMemory).toHaveBeenCalledWith(
469
- expect.objectContaining({
470
- content: 'Test memory',
471
- type: 'episodic',
472
- importance: 0.8
473
- })
474
- );
475
- });
476
- });
477
- ```
478
-
479
- #### Integration Tests
480
-
481
- ```typescript
482
- // tests/integration/mcp-server.test.ts
483
- import { MCPClient } from '@modelcontextprotocol/sdk';
484
- import { MCPServer } from '@/server';
485
-
486
- describe('MCP Server Integration', () => {
487
- let server: MCPServer;
488
- let client: MCPClient;
489
-
490
- beforeAll(async () => {
491
- server = new MCPServer();
492
- await server.start();
493
-
494
- client = new MCPClient({
495
- name: 'test-client',
496
- version: '1.0.0'
497
- });
498
- await client.connect({
499
- command: 'node',
500
- args: ['dist/server/index.js']
501
- });
502
- });
503
-
504
- afterAll(async () => {
505
- await client.close();
506
- await server.stop();
507
- });
508
-
509
- it('should handle remember and recall workflow', async () => {
510
- // Remember
511
- const rememberResult = await client.callTool('remember', {
512
- content: 'Integration test memory'
513
- });
514
-
515
- expect(rememberResult.memory_id).toBeDefined();
516
-
517
- // Recall
518
- const recallResult = await client.callTool('recall', {
519
- query: 'integration test'
520
- });
521
-
522
- expect(recallResult.items).toHaveLength(1);
523
- expect(recallResult.items[0].content).toContain('Integration test memory');
524
- });
525
- });
526
- ```
527
-
528
- ### 3. Code Review
529
-
530
- #### Create Pull Request
531
-
532
- 1. Create Pull Request on GitHub
533
- 2. Write change description
534
- 3. Link related issues
535
- 4. Assign reviewers
536
-
537
- #### Review Checklist
538
-
539
- - [ ] Does the code follow project style guidelines?
540
- - [ ] Are tests sufficiently written?
541
- - [ ] Is documentation updated?
542
- - [ ] Does it affect performance?
543
- - [ ] Are there any security vulnerabilities?
544
-
545
- ## Test Writing
546
-
547
- ### Test Strategy
548
-
549
- #### 1. Unit Tests
550
-
551
- - **Purpose**: Verify individual function/class behavior
552
- - **Scope**: All public methods
553
- - **Tool**: Jest
554
- - **Location**: `tests/unit/`
555
-
556
- #### 2. Integration Tests
557
-
558
- - **Purpose**: Verify component interactions
559
- - **Scope**: MCP server, database integration
560
- - **Tool**: Jest + real database
561
- - **Location**: `tests/integration/`
562
-
563
- #### 3. E2E Tests
564
-
565
- - **Purpose**: Verify complete workflows
566
- - **Scope**: User scenarios
567
- - **Tool**: Jest + MCP client
568
- - **Location**: `tests/e2e/`
569
-
570
- #### 4. Error Logging Tests
571
-
572
- - **Purpose**: Verify error logging system normal operation
573
- - **Scope**: ErrorLoggingService, error statistics, error resolution
574
- - **Tool**: tsx + direct service testing
575
- - **Location**: `src/test-error-logging.ts`
576
-
577
- #### 5. Performance Alert Tests
578
-
579
- - **Purpose**: Verify performance alert system normal operation
580
- - **Scope**: PerformanceAlertService, real-time monitoring, alert management
581
- - **Tool**: tsx + direct service testing
582
- - **Location**: `src/test-performance-alerts.ts`
583
-
584
- ### Test Writing Guide
585
-
586
- #### 1. Test Structure (AAA Pattern)
587
-
588
- ```typescript
589
- describe('ComponentName', () => {
590
- describe('methodName', () => {
591
- it('should do something when condition', async () => {
592
- // Arrange (Setup)
593
- const input = createTestInput();
594
- const expected = createExpectedOutput();
595
-
596
- // Act (Execute)
597
- const result = await component.method(input);
598
-
599
- // Assert (Verify)
600
- expect(result).toEqual(expected);
601
- });
602
- });
603
- });
604
- ```
605
-
606
- #### 2. Mock Usage
607
-
608
- ```typescript
609
- // Create mock object
610
- const mockDatabase = {
611
- createMemory: jest.fn(),
612
- getMemory: jest.fn(),
613
- searchMemories: jest.fn()
614
- };
615
-
616
- // Mock setup
617
- mockDatabase.createMemory.mockResolvedValue('memory-123');
618
-
619
- // Mock verification
620
- expect(mockDatabase.createMemory).toHaveBeenCalledWith(expectedParams);
621
- ```
622
-
623
- #### 3. Test Data Management
624
-
625
- ```typescript
626
- // tests/fixtures/memories.json
627
- {
628
- "episodic": [
629
- {
630
- "id": "memory-1",
631
- "content": "Test episodic memory",
632
- "type": "episodic",
633
- "importance": 0.8
634
- }
635
- ],
636
- "semantic": [
637
- {
638
- "id": "memory-2",
639
- "content": "Test semantic memory",
640
- "type": "semantic",
641
- "importance": 0.9
642
- }
643
- ]
644
- }
645
- ```
646
-
647
- ### Test Execution
648
-
649
- ```bash
650
- # Run all tests (Vitest)
651
- npm test
652
-
653
- # Run specific tests
654
- npm run test:client
655
- npm run test:search
656
- npm run test:embedding
657
- npm run test:lightweight-embedding
658
- npm run test:forgetting
659
- npm run test:performance
660
- npm run test:monitoring
661
- npm run test:error-logging
662
- npm run test:performance-alerts
663
-
664
- # Tests with coverage
665
- npm run test -- --coverage
666
-
667
- # Watch mode
668
- npm run test -- --watch
669
- ```
670
-
671
- ## Contribution Methods
672
-
673
- ### 1. Create Issues
674
-
675
- #### Bug Report
676
-
677
- ```markdown
678
- **Bug Description**
679
- Brief and clear bug description
680
-
681
- **Reproduction Steps**
682
- 1. Go to '...'
683
- 2. Click on '...'
684
- 3. Enter '...'
685
- 4. Error occurs
686
-
687
- **Expected Behavior**
688
- What should happen
689
-
690
- **Actual Behavior**
691
- What actually happened
692
-
693
- **Environment**
694
- - OS: [e.g., Windows 10]
695
- - Node.js: [e.g., 20.0.0]
696
- - Memento: [e.g., 0.1.0]
697
- ```
698
-
699
- #### Feature Request
700
-
701
- ```markdown
702
- **Feature Description**
703
- Brief and clear description of desired feature
704
-
705
- **Use Case**
706
- Why this feature is needed, what problem it solves
707
-
708
- **Proposed Solution**
709
- Specific implementation approach (if available)
710
-
711
- **Alternatives**
712
- Other solutions considered
713
- ```
714
-
715
- ### 2. Code Contribution
716
-
717
- #### Step 1: Fork Repository
718
-
719
- 1. Fork repository on GitHub
720
- 2. Clone locally
721
-
722
- ```bash
723
- git clone https://github.com/your-username/memento.git
724
- cd memento
725
- ```
726
-
727
- #### Step 2: Development Environment Setup
728
-
729
- ```bash
730
- # Add upstream repository
731
- git remote add upstream https://github.com/your-org/memento.git
732
-
733
- # Install dependencies
734
- npm install
735
-
736
- # Start development server
737
- npm run dev
738
- ```
739
-
740
- #### Step 3: Feature Development
741
-
742
- ```bash
743
- # Create new branch
744
- git checkout -b feature/your-feature
745
-
746
- # Development progress
747
- # ... write code ...
748
-
749
- # Write tests
750
- npm run test
751
-
752
- # Commit
753
- git add .
754
- git commit -m "feat: add your feature"
755
- ```
756
-
757
- #### Step 4: Create Pull Request
758
-
759
- 1. Push changes
760
- ```bash
761
- git push origin feature/your-feature
762
- ```
763
-
764
- 2. Create Pull Request on GitHub
765
- 3. Write description according to template
766
- 4. Assign reviewers
767
-
768
- ### 3. Documentation Contribution
769
-
770
- #### Documentation Writing Guide
771
-
772
- - **Language**: Korean (technical terms in English)
773
- - **Format**: Markdown
774
- - **Structure**: Clear table of contents and section separation
775
- - **Examples**: Real, usable code examples
776
-
777
- #### Documentation Updates
778
-
779
- 1. Modify related documentation files
780
- 2. Describe changes
781
- 3. Request review
782
-
783
- ### 4. Commit Message Rules
784
-
785
- #### Conventional Commit Format
786
-
787
- ```
788
- <type>(<scope>): <description>
789
-
790
- [optional body]
791
-
792
- [optional footer(s)]
793
- ```
794
-
795
- #### Types
796
-
797
- - `feat`: New feature
798
- - `fix`: Bug fix
799
- - `docs`: Documentation changes
800
- - `style`: Code formatting
801
- - `refactor`: Code refactoring
802
- - `test`: Test addition/modification
803
- - `chore`: Build process or auxiliary tool changes
804
-
805
- #### Examples
806
-
807
- ```bash
808
- feat(tools): add summarize_thread tool
809
- fix(database): resolve memory leak in SQLite connection
810
- docs(api): update remember tool documentation
811
- test(integration): add MCP server integration tests
812
- ```
813
-
814
- ## Error Logging and Performance Monitoring Development Guide
815
-
816
- ### Error Logging System
817
-
818
- #### 1. Using Error Logging Service
819
-
820
- ```typescript
821
- import { ErrorLoggingService, ErrorSeverity, ErrorCategory } from '../services/error-logging-service.js';
822
-
823
- // Initialize error logging service
824
- const errorLoggingService = new ErrorLoggingService();
825
-
826
- // Log error
827
- try {
828
- // Perform risky operation
829
- await riskyOperation();
830
- } catch (error) {
831
- errorLoggingService.logError(
832
- error instanceof Error ? error : new Error(String(error)),
833
- ErrorSeverity.HIGH,
834
- ErrorCategory.TOOL_EXECUTION,
835
- {
836
- operation: 'risky_operation',
837
- userId: 'user123',
838
- timestamp: new Date().toISOString()
839
- }
840
- );
841
- }
842
- ```
843
-
844
- #### 2. Error Statistics Query
845
-
846
- ```typescript
847
- // Basic error statistics
848
- const stats = await errorLoggingService.getErrorStats();
849
-
850
- // Filtered error statistics
851
- const highErrors = await errorLoggingService.getErrorStats({
852
- severity: ErrorSeverity.HIGH,
853
- hours: 24
854
- });
855
-
856
- // Query only database-related errors
857
- const dbErrors = await errorLoggingService.getErrorStats({
858
- category: ErrorCategory.DATABASE,
859
- limit: 10
860
- });
861
- ```
862
-
863
- #### 3. Error Resolution Processing
864
-
865
- ```typescript
866
- // Resolve error
867
- const resolved = await errorLoggingService.resolveError(
868
- 'error-123',
869
- 'admin',
870
- 'Database connection issue resolved'
871
- );
872
- ```
873
-
874
- ### Performance Alert System
875
-
876
- #### 1. Using Performance Alert Service
877
-
878
- ```typescript
879
- import { PerformanceAlertService, AlertLevel, AlertType } from '../services/performance-alert-service.js';
880
-
881
- // Initialize performance alert service
882
- const alertService = new PerformanceAlertService('./logs');
883
-
884
- // Create alert
885
- const alert = alertService.createAlert(
886
- AlertLevel.WARNING,
887
- AlertType.RESPONSE_TIME,
888
- 'Average response time',
889
- 150,
890
- 100,
891
- '🟡 Response time exceeded threshold',
892
- { component: 'search_engine', operation: 'search' }
893
- );
894
-
895
- // Resolve alert
896
- const resolvedAlert = alertService.resolveAlert(
897
- alert.id,
898
- 'admin',
899
- 'Performance optimization completed'
900
- );
901
- ```
902
-
903
- #### 2. Real-time Monitoring Setup
904
-
905
- ```typescript
906
- import { PerformanceMonitoringIntegration } from '../services/performance-monitoring-integration.js';
907
-
908
- // Initialize monitoring integration service
909
- const monitoringIntegration = new PerformanceMonitoringIntegration(
910
- db,
911
- alertService,
912
- {
913
- enableRealTimeMonitoring: true,
914
- monitoringInterval: 30000, // Check every 30 seconds
915
- alertThresholds: {
916
- responseTime: { warning: 100, critical: 500 },
917
- memoryUsage: { warning: 100, critical: 200 },
918
- errorRate: { warning: 5, critical: 10 },
919
- throughput: { warning: 10, critical: 5 }
920
- }
921
- }
922
- );
923
-
924
- // Start real-time monitoring
925
- monitoringIntegration.startRealTimeMonitoring();
926
- ```
927
-
928
- ### Test Writing
929
-
930
- #### 1. Error Logging Tests
931
-
932
- ```typescript
933
- // src/test-error-logging.ts
934
- import { ErrorLoggingService, ErrorSeverity, ErrorCategory } from './services/error-logging-service.js';
935
-
936
- async function testErrorLogging() {
937
- const errorService = new ErrorLoggingService();
938
-
939
- // Test error logging
940
- errorService.logError(
941
- new Error('Test error'),
942
- ErrorSeverity.HIGH,
943
- ErrorCategory.SYSTEM,
944
- { test: true }
945
- );
946
-
947
- // Test statistics query
948
- const stats = errorService.getErrorStats();
949
- console.log('Error stats:', stats);
950
-
951
- // Test error resolution
952
- const errors = errorService.searchErrors({ limit: 1 });
953
- if (errors.length > 0) {
954
- const resolved = errorService.resolveError(
955
- errors[0].id,
956
- 'test_user',
957
- 'Test resolution'
958
- );
959
- console.log('Error resolved:', resolved);
960
- }
961
- }
962
- ```
963
-
964
- #### 2. Performance Alert Tests
965
-
966
- ```typescript
967
- // src/test-performance-alerts.ts
968
- import { PerformanceAlertService, AlertLevel, AlertType } from './services/performance-alert-service.js';
969
-
970
- async function testPerformanceAlerts() {
971
- const alertService = new PerformanceAlertService('./logs');
972
-
973
- // Test alert creation
974
- const alert = alertService.createAlert(
975
- AlertLevel.WARNING,
976
- AlertType.MEMORY_USAGE,
977
- 'Memory usage',
978
- 150,
979
- 100,
980
- '🟡 Memory usage exceeded'
981
- );
982
-
983
- // Query alert statistics
984
- const stats = alertService.getStats();
985
- console.log('Alert stats:', stats);
986
-
987
- // Test alert resolution
988
- const resolved = alertService.resolveAlert(
989
- alert.id,
990
- 'test_user',
991
- 'Test resolution'
992
- );
993
- console.log('Alert resolved:', resolved);
994
- }
995
- ```
996
-
997
- ## Additional Resources
998
-
999
- - [API Reference Documentation](api-reference.md)
1000
- - [User Manual](user-manual.md)
1001
- - [Architecture Documentation](architecture.md)
1002
- - [Test Guide](testing-guide.md)
1003
- - [Cursor Rules](../.cursor/rules/)
1004
- - [GitHub Repository](https://github.com/your-org/memento)
1005
- - [Community Forum](https://github.com/your-org/memento/discussions)