memento-mcp-server 1.6.0 → 1.7.1

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 +3 -1
  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
package/README.md CHANGED
@@ -1,432 +1,432 @@
1
- # 🧠 Memento MCP Server
2
-
3
- <div align="center">
4
- <img src="static/logo.png" alt="Memento Logo" width="200" height="200">
5
-
6
- <h3>✨ AI Agent의 기억을 영원히 기억하세요 ✨</h3>
7
-
8
- <p><strong>사람의 기억 구조를 모사한 지능형 메모리 관리 시스템</strong></p>
9
-
10
- [🇰🇷 한국어](README.md) | [🇺🇸 English](README.en.md)
11
- </div>
12
-
13
- > **🚀 혁신적인 AI Agent 기억 보조 시스템**
14
- > Memento는 AI Agent가 사람처럼 기억을 저장, 검색, 관리할 수 있도록 도와주는 MCP(Model Context Protocol) 서버입니다.
15
- > 작업기억, 일화기억, 의미기억, 절차기억을 모사하여 **진정한 장기 기억**을 구현합니다.
16
-
17
- ## 🎯 프로젝트 개요
18
-
19
- Memento MCP Server는 AI Agent가 장기 기억을 저장하고 관리할 수 있도록 도와주는 MCP(Model Context Protocol) 서버입니다. 사람의 기억 구조(작업기억, 일화기억, 의미기억, 절차기억)를 모사하여 효율적인 기억 관리 시스템을 제공합니다.
20
-
21
- ## ✨ 주요 기능
22
-
23
- ### 🧠 핵심 메모리 관리 (MCP 클라이언트)
24
- - **기억 저장**: 4가지 타입의 기억 저장 (working, episodic, semantic, procedural)
25
- - **기억 검색**: 하이브리드 검색 (텍스트 + 벡터)
26
- - **기억 고정**: 중요한 기억 고정/해제
27
- - **기억 삭제**: 소프트/하드 삭제
28
-
29
- ### 🔍 고급 검색
30
- - **FTS5 텍스트 검색**: SQLite의 Full-Text Search
31
- - **벡터 검색**: sqlite-vec 기반 의미적 검색
32
- - **하이브리드 검색**: 텍스트와 벡터 검색의 결합
33
- - **다중 임베딩 제공자**: TF-IDF, MiniLM, OpenAI, Gemini 지원
34
- - **자동 제공자 선택**: 설정 기반 최적 제공자 자동 선택
35
- - **폴백 메커니즘**: 제공자 실패 시 자동 대체
36
- - **태그 기반 필터링**: 메타데이터 기반 검색
37
-
38
- ### 🧹 망각 정책
39
- - **망각 알고리즘**: 최근성, 사용성, 중복 비율 기반 망각 점수 계산
40
- - **간격 반복**: 중요도와 사용성 기반 리뷰 스케줄링
41
- - **TTL 관리**: 타입별 수명 관리
42
- - **자동 정리**: 소프트/하드 삭제 자동화
43
-
44
- ### 📊 성능 모니터링 (HTTP 관리 API)
45
- - **실시간 메트릭**: 데이터베이스, 검색, 메모리 성능 모니터링
46
- - **실시간 알림**: 30초마다 자동 성능 체크 및 임계값 기반 알림
47
- - **에러 로깅**: 구조화된 에러 로깅 및 통계 수집
48
- - **데이터베이스 최적화**: 자동 인덱스 추천 및 생성
49
- - **캐시 시스템**: LRU + TTL 기반 캐싱
50
- - **비동기 처리**: 워커 풀 기반 병렬 처리
51
-
52
- ## 🚀 빠른 시작
53
-
54
- ### 🥇 **원클릭 설치 (권장)**
55
- ```bash
56
- # 자동 설치 스크립트 실행
57
- curl -sSL https://raw.githubusercontent.com/jee1/memento/main/install.sh | bash
58
- ```
59
-
60
- ### 🥈 **npx 방식 (개발자용)**
61
- ```bash
62
- # 즉시 실행 (설치 없이)
63
- npx memento-mcp-server@latest dev
64
-
65
- # MCP 서버 실행
66
- npx memento-mcp-server@latest
67
-
68
- # HTTP 서버 실행
69
- npx memento-mcp-server@latest http
70
-
71
- # 자동 설정
72
- npx memento-mcp-server@latest setup
73
- ```
74
-
75
- ### 🥉 **Docker 방식 (프로덕션용)**
76
- ```bash
77
- # 개발 환경
78
- docker-compose -f docker-compose.dev.yml up -d
79
-
80
- # 프로덕션 환경
81
- docker-compose -f docker-compose.prod.yml up -d
82
- ```
83
-
84
- ### 🛠️ **소스코드 방식 (개발자용)**
85
- ```bash
86
- # 저장소 클론
87
- git clone https://github.com/jee1/memento.git
88
- cd memento
89
-
90
- # 원클릭 설치 및 실행
91
- npm run quick-start
92
- ```
93
-
94
- ### 📚 **상세 설치 가이드**
95
- 자세한 설치 방법은 [INSTALL.md](INSTALL.md)를 참조하세요.
96
-
97
- ## 💡 사용 예시
98
-
99
- ### 🤖 AI Agent와의 연동
100
- ```typescript
101
- // AI Agent가 학습한 내용을 기억에 저장
102
- await client.callTool({
103
- name: "remember",
104
- arguments: {
105
- content: "사용자는 React Hook을 학습했습니다. useState는 상태를 관리하고, useEffect는 사이드 이펙트를 처리합니다.",
106
- type: "episodic",
107
- tags: ["react", "hooks", "javascript"],
108
- importance: 0.8
109
- }
110
- });
111
-
112
- // 나중에 관련 정보를 검색
113
- const results = await client.callTool({
114
- name: "recall",
115
- arguments: {
116
- query: "React Hook 사용법",
117
- limit: 5
118
- }
119
- });
120
- ```
121
-
122
- ### 📚 지식 관리 시스템
123
- ```typescript
124
- // 중요한 지식을 의미기억으로 저장
125
- await client.callTool({
126
- name: "remember",
127
- arguments: {
128
- content: "TypeScript의 제네릭은 타입을 매개변수화하여 재사용 가능한 컴포넌트를 만드는 기능입니다.",
129
- type: "semantic",
130
- tags: ["typescript", "generics", "programming"],
131
- importance: 0.9
132
- }
133
- });
134
- ```
135
-
136
- ### 🔧 절차 기억 관리
137
- ```typescript
138
- // 작업 절차를 절차기억으로 저장
139
- await client.callTool({
140
- name: "remember",
141
- arguments: {
142
- content: "Docker 컨테이너 빌드 및 배포 절차: 1) Dockerfile 작성 2) docker build 실행 3) docker run으로 테스트 4) 레지스트리에 푸시",
143
- type: "procedural",
144
- tags: ["docker", "deployment", "devops"],
145
- importance: 0.7
146
- }
147
- });
148
- ```
149
-
150
- ## 🛠️ 사용법
151
-
152
- ### MCP 클라이언트 연결
153
-
154
- ```typescript
155
- import { Client } from "@modelcontextprotocol/sdk/client/index.js";
156
-
157
- const client = new Client({
158
- name: "memento-client",
159
- version: "0.1.0"
160
- }, {
161
- capabilities: {
162
- tools: {},
163
- resources: {},
164
- prompts: {}
165
- }
166
- });
167
-
168
- // stdio 연결
169
- await client.connect({
170
- command: "node",
171
- args: ["dist/server/index.js"]
172
- });
173
-
174
- // WebSocket 연결
175
- await client.connect({
176
- transport: {
177
- type: "websocket",
178
- url: "ws://localhost:9001/mcp"
179
- }
180
- });
181
- ```
182
-
183
- ### 기억 저장
184
-
185
- ```typescript
186
- // 기억 저장
187
- const result = await client.callTool({
188
- name: "remember",
189
- arguments: {
190
- content: "React Hook에 대해 학습했습니다. useState는 상태를 관리하고, useEffect는 사이드 이펙트를 처리합니다.",
191
- type: "episodic",
192
- tags: ["react", "hooks", "javascript"],
193
- importance: 0.8
194
- }
195
- });
196
- ```
197
-
198
- ### 기억 검색
199
-
200
- ```typescript
201
- // 기억 검색
202
- const results = await client.callTool({
203
- name: "recall",
204
- arguments: {
205
- query: "React Hook",
206
- filters: {
207
- type: ["episodic", "semantic"],
208
- tags: ["react"]
209
- },
210
- limit: 10
211
- }
212
- });
213
- ```
214
-
215
- ## 📚 문서
216
-
217
- - [임베딩 서비스 가이드](docs/ko/embedding-service-guide.md) - 임베딩 서비스 사용법
218
- - [성능 벤치마크](docs/ko/embedding-performance-benchmark.md) - 성능 비교 결과
219
- - [API 레퍼런스](docs/ko/embedding-api-reference.md) - API 상세 문서
220
- - [설정 가이드](docs/ko/embedding-configuration.md) - 환경 설정 방법
221
-
222
- ## 📋 API 문서
223
-
224
- ### MCP Tools (핵심 5개만)
225
-
226
- > **중요**: MCP 클라이언트는 핵심 메모리 관리 기능 5개만 노출합니다.
227
- > 관리 기능들은 HTTP API 엔드포인트로 분리되었습니다.
228
-
229
- | Tool | 설명 | 파라미터 |
230
- |------|------|----------|
231
- | `remember` | 기억 저장 | content, type, tags, importance, source, privacy_scope |
232
- | `recall` | 기억 검색 | query, filters, limit |
233
- | `pin` | 기억 고정 | memory_id |
234
- | `unpin` | 기억 고정 해제 | memory_id |
235
- | `forget` | 기억 삭제 | memory_id, hard |
236
-
237
- ### HTTP 관리 API
238
-
239
- | 엔드포인트 | 설명 | 메서드 |
240
- |-----------|------|--------|
241
- | `/admin/memory/cleanup` | 메모리 정리 | POST |
242
- | `/admin/stats/forgetting` | 망각 통계 조회 | GET |
243
- | `/admin/stats/performance` | 성능 통계 조회 | GET |
244
- | `/admin/stats/errors` | 에러 통계 조회 | GET |
245
- | `/admin/errors/resolve` | 에러 해결 | POST |
246
- | `/admin/alerts/performance` | 성능 알림 조회 | GET |
247
- | `/admin/database/optimize` | 데이터베이스 최적화 | POST |
248
-
249
- ### Resources
250
-
251
- | Resource | 설명 |
252
- |----------|------|
253
- | `memory/{id}` | 단일 기억 상세 정보 |
254
- | `memory/search?query=...` | 검색 결과 캐시 |
255
-
256
- ## 🔧 설정
257
-
258
- ### 환경 변수
259
-
260
- | 변수 | 기본값 | 설명 |
261
- |------|--------|------|
262
- | `NODE_ENV` | development | 실행 환경 |
263
- | `PORT` | 9001 | 서버 포트 |
264
- | `DB_PATH` | ./data/memory.db | 데이터베이스 경로 |
265
- | `LOG_LEVEL` | info | 로그 레벨 |
266
- | `OPENAI_API_KEY` | - | OpenAI API 키 (선택사항) |
267
-
268
- ### 망각 정책 설정
269
-
270
- ```bash
271
- # 망각 임계값
272
- FORGET_THRESHOLD=0.6
273
- SOFT_DELETE_THRESHOLD=0.6
274
- HARD_DELETE_THRESHOLD=0.8
275
-
276
- # TTL 설정 (일 단위)
277
- TTL_SOFT_WORKING=2
278
- TTL_SOFT_EPISODIC=30
279
- TTL_SOFT_SEMANTIC=180
280
- TTL_SOFT_PROCEDURAL=90
281
- ```
282
-
283
- ## 🧪 테스트
284
-
285
- ```bash
286
- # 모든 테스트 실행 (Vitest)
287
- npm run test
288
-
289
- # 개별 테스트 실행
290
- npm run test:client # 클라이언트 테스트
291
- npm run test:search # 검색 기능 테스트
292
- npm run test:embedding # 임베딩 기능 테스트
293
- npm run test:lightweight-embedding # 경량 임베딩 테스트
294
- npm run test:forgetting # 망각 정책 테스트
295
- npm run test:performance # 성능 벤치마크
296
- npm run test:monitoring # 성능 모니터링 테스트
297
- npm run test:error-logging # 에러 로깅 테스트
298
- npm run test:performance-alerts # 성능 알림 테스트
299
-
300
- # 테스트 감시 모드
301
- npm run test -- --watch
302
-
303
- # 커버리지 포함 테스트
304
- npm run test -- --coverage
305
- ```
306
-
307
- ## 📚 개발자 가이드라인
308
-
309
- ### 저장소 가이드라인 (`AGENTS.md`)
310
- - **프로젝트 구조**: `src/` 하위 모듈별 조직화
311
- - **빌드/테스트 명령어**: `npm run dev`, `npm run build`, `npm run test` 등
312
- - **코딩 스타일**: Node.js ≥ 20, TypeScript ES 모듈, 2칸 들여쓰기
313
- - **테스트 가이드라인**: Vitest 기반, `src/test/` 또는 `*.spec.ts` 파일
314
- - **커밋/PR 가이드라인**: Conventional Commits, 한국어 컨텍스트 포함
315
- - **환경/데이터베이스**: `.env` 설정, `data/` 폴더 관리
316
-
317
- ## 📊 성능 지표
318
-
319
- ### 기본 성능
320
- - **데이터베이스 성능**: 평균 쿼리 시간 0.16-0.22ms
321
- - **검색 성능**: 0.78-4.24ms (캐시 효과로 개선)
322
- - **메모리 사용량**: 11-15MB 힙 사용량
323
- - **동시 연결**: 최대 1000개 연결 지원
324
-
325
- ### 고급 성능 최적화
326
- - **캐시 히트율**: 80% 이상 (검색 결과 캐싱)
327
- - **임베딩 캐싱**: 24시간 TTL로 비용 절약
328
- - **비동기 처리**: 워커 풀 기반 병렬 처리
329
- - **데이터베이스 최적화**: 자동 인덱스 추천 및 생성
330
- - **실시간 모니터링**: 30초마다 자동 성능 체크
331
- - **에러 로깅**: 구조화된 에러 추적 및 통계
332
- - **성능 알림**: 임계값 기반 자동 알림 시스템
333
-
334
- ### 경량 임베딩 성능
335
- - **TF-IDF 벡터화**: 512차원 고정 벡터 생성
336
- - **다국어 지원**: 한국어/영어 불용어 제거
337
- - **로컬 처리**: OpenAI API 없이 동작
338
- - **코사인 유사도**: 빠른 벡터 검색
339
-
340
- ## 🏗️ 아키텍처
341
-
342
- ### M1: 개인용 (현재 구현)
343
- - **스토리지**: better-sqlite3 임베디드
344
- - **인덱스**: FTS5 + sqlite-vss
345
- - **인증**: 없음 (로컬 전용)
346
- - **운영**: 로컬 실행
347
- - **MCP 클라이언트**: 핵심 5개 도구만 노출
348
- - **관리 기능**: HTTP API로 분리
349
- - **추가 기능**: 경량 임베딩, 성능 모니터링, 캐시 시스템
350
-
351
- ### M2: 팀 협업 (계획)
352
- - **스토리지**: SQLite 서버 모드
353
- - **인증**: API Key
354
- - **운영**: Docker 단일 컨테이너
355
-
356
- ### M3: 조직 초입 (계획)
357
- - **스토리지**: PostgreSQL + pgvector
358
- - **인증**: JWT
359
- - **운영**: Docker Compose
360
-
361
- ## ❓ 자주 묻는 질문 (FAQ)
362
-
363
- ### Q: Memento는 어떤 AI Agent와 호환되나요?
364
- A: MCP(Model Context Protocol)를 지원하는 모든 AI Agent와 호환됩니다. Claude, GPT-4, Gemini 등과 연동 가능합니다.
365
-
366
- ### Q: 기억 데이터는 어디에 저장되나요?
367
- A: 기본적으로 로컬 SQLite 데이터베이스(`./data/memory.db`)에 저장됩니다. Docker를 사용하는 경우 컨테이너 내부에 저장됩니다.
368
-
369
- ### Q: OpenAI API 키가 필요한가요?
370
- A: 선택사항입니다. OpenAI API 키가 없어도 TF-IDF 기반 경량 임베딩으로 동작합니다. 더 정확한 검색을 원한다면 OpenAI API 키를 설정하세요.
371
-
372
- ### Q: 기억 용량에 제한이 있나요?
373
- A: SQLite 데이터베이스의 제한에 따라 달라집니다. 일반적으로 수백만 개의 기억을 저장할 수 있습니다.
374
-
375
- ### Q: 다른 사용자와 기억을 공유할 수 있나요?
376
- A: 현재 M1 버전은 개인용입니다. M2 버전부터 팀 협업 기능이 추가될 예정입니다.
377
-
378
- ### Q: 기억이 자동으로 삭제되나요?
379
- A: 네, 망각 정책에 따라 자동으로 삭제됩니다. 중요한 기억은 `pin` 기능으로 고정할 수 있습니다.
380
-
381
- ## 🤝 기여하기
382
-
383
- Memento 프로젝트에 기여하고 싶으신가요? 자세한 가이드는 [CONTRIBUTING.md](CONTRIBUTING.md)를 참조하세요.
384
-
385
- ### 빠른 기여 시작
386
- 1. **Fork** the Project
387
- 2. **Create** your Feature Branch (`git checkout -b feature/AmazingFeature`)
388
- 3. **Commit** your Changes (`git commit -m 'feat: add some AmazingFeature'`)
389
- 4. **Push** to the Branch (`git push origin feature/AmazingFeature`)
390
- 5. **Open** a Pull Request
391
-
392
- ### 개발 환경 설정
393
- ```bash
394
- # 저장소 포크 후 클론
395
- git clone https://github.com/your-username/memento.git
396
- cd memento
397
-
398
- # 의존성 설치
399
- npm install
400
-
401
- # 개발 서버 시작
402
- npm run dev
403
-
404
- # 테스트 실행
405
- npm run test
406
- ```
407
-
408
- ### 기여 방법
409
- - 🐛 **버그 리포트**: [GitHub Issues](https://github.com/jee1/memento/issues)에서 버그를 신고하세요
410
- - 💡 **기능 제안**: 새로운 아이디어를 제안해주세요
411
- - 📝 **문서 개선**: 문서를 더 명확하게 만들어주세요
412
- - 🔧 **코드 기여**: 새로운 기능이나 버그 수정을 도와주세요
413
-
414
- ## 📄 라이선스
415
-
416
- 이 프로젝트는 MIT 라이선스 하에 배포됩니다. 자세한 내용은 `LICENSE` 파일을 참조하세요.
417
-
418
- ## 📞 지원
419
-
420
- - 이슈 리포트: [GitHub Issues](https://github.com/jee1/memento/issues)
421
- - 문서: [Wiki](https://github.com/jee1/memento/wiki)
422
- - 개발자 가이드: [docs/developer-guide.md](docs/developer-guide.md)
423
- - API 참조: [docs/api-reference.md](docs/api-reference.md)
424
-
425
- ## 🙏 감사의 말
426
-
427
- - [Model Context Protocol](https://modelcontextprotocol.io/) - MCP 프로토콜
428
- - [OpenAI](https://openai.com/) - 임베딩 서비스
429
- - [better-sqlite3](https://github.com/WiseLibs/better-sqlite3) - 고성능 SQLite 드라이버
430
- - [Express](https://expressjs.com/) - 웹 프레임워크
431
- - [Vitest](https://vitest.dev/) - 테스트 프레임워크
432
- - [TypeScript](https://www.typescriptlang.org/) - 개발 언어
1
+ # 🧠 Memento MCP Server
2
+
3
+ <div align="center">
4
+ <img src="static/logo.png" alt="Memento Logo" width="200" height="200">
5
+
6
+ <h3>✨ AI Agent의 기억을 영원히 기억하세요 ✨</h3>
7
+
8
+ <p><strong>사람의 기억 구조를 모사한 지능형 메모리 관리 시스템</strong></p>
9
+
10
+ [🇰🇷 한국어](README.md) | [🇺🇸 English](README.en.md)
11
+ </div>
12
+
13
+ > **🚀 혁신적인 AI Agent 기억 보조 시스템**
14
+ > Memento는 AI Agent가 사람처럼 기억을 저장, 검색, 관리할 수 있도록 도와주는 MCP(Model Context Protocol) 서버입니다.
15
+ > 작업기억, 일화기억, 의미기억, 절차기억을 모사하여 **진정한 장기 기억**을 구현합니다.
16
+
17
+ ## 🎯 프로젝트 개요
18
+
19
+ Memento MCP Server는 AI Agent가 장기 기억을 저장하고 관리할 수 있도록 도와주는 MCP(Model Context Protocol) 서버입니다. 사람의 기억 구조(작업기억, 일화기억, 의미기억, 절차기억)를 모사하여 효율적인 기억 관리 시스템을 제공합니다.
20
+
21
+ ## ✨ 주요 기능
22
+
23
+ ### 🧠 핵심 메모리 관리 (MCP 클라이언트)
24
+ - **기억 저장**: 4가지 타입의 기억 저장 (working, episodic, semantic, procedural)
25
+ - **기억 검색**: 하이브리드 검색 (텍스트 + 벡터)
26
+ - **기억 고정**: 중요한 기억 고정/해제
27
+ - **기억 삭제**: 소프트/하드 삭제
28
+
29
+ ### 🔍 고급 검색
30
+ - **FTS5 텍스트 검색**: SQLite의 Full-Text Search
31
+ - **벡터 검색**: sqlite-vec 기반 의미적 검색
32
+ - **하이브리드 검색**: 텍스트와 벡터 검색의 결합
33
+ - **다중 임베딩 제공자**: TF-IDF, MiniLM, OpenAI, Gemini 지원
34
+ - **자동 제공자 선택**: 설정 기반 최적 제공자 자동 선택
35
+ - **폴백 메커니즘**: 제공자 실패 시 자동 대체 (OpenAI → 경량 서비스)
36
+ - **태그 기반 필터링**: 메타데이터 기반 검색
37
+
38
+ ### 🧹 망각 정책
39
+ - **망각 알고리즘**: 최근성, 사용성, 중복 비율 기반 망각 점수 계산
40
+ - **간격 반복**: 중요도와 사용성 기반 리뷰 스케줄링
41
+ - **TTL 관리**: 타입별 수명 관리
42
+ - **자동 정리**: 소프트/하드 삭제 자동화
43
+
44
+ ### 📊 성능 모니터링 (HTTP 관리 API)
45
+ - **실시간 메트릭**: 데이터베이스, 검색, 메모리 성능 모니터링
46
+ - **실시간 알림**: 30초마다 자동 성능 체크 및 임계값 기반 알림
47
+ - **에러 로깅**: 구조화된 에러 로깅 및 통계 수집
48
+ - **데이터베이스 최적화**: 자동 인덱스 추천 및 생성
49
+ - **캐시 시스템**: LRU + TTL 기반 캐싱
50
+ - **비동기 처리**: 워커 풀 기반 병렬 처리
51
+
52
+ ## 🚀 빠른 시작
53
+
54
+ ### 🥇 **원클릭 설치 (권장)**
55
+ ```bash
56
+ # 자동 설치 스크립트 실행
57
+ curl -sSL https://raw.githubusercontent.com/jee1/memento/main/install.sh | bash
58
+ ```
59
+
60
+ ### 🥈 **npx 방식 (개발자용)**
61
+ ```bash
62
+ # 즉시 실행 (설치 없이)
63
+ npx memento-mcp-server@latest dev
64
+
65
+ # MCP 서버 실행
66
+ npx memento-mcp-server@latest
67
+
68
+ # HTTP 서버 실행
69
+ npx memento-mcp-server@latest http
70
+
71
+ # 자동 설정
72
+ npx memento-mcp-server@latest setup
73
+ ```
74
+
75
+ ### 🥉 **Docker 방식 (프로덕션용)**
76
+ ```bash
77
+ # 개발 환경
78
+ docker-compose -f docker-compose.dev.yml up -d
79
+
80
+ # 프로덕션 환경
81
+ docker-compose -f docker-compose.prod.yml up -d
82
+ ```
83
+
84
+ ### 🛠️ **소스코드 방식 (개발자용)**
85
+ ```bash
86
+ # 저장소 클론
87
+ git clone https://github.com/jee1/memento.git
88
+ cd memento
89
+
90
+ # 원클릭 설치 및 실행
91
+ npm run quick-start
92
+ ```
93
+
94
+ ### 📚 **상세 설치 가이드**
95
+ 자세한 설치 방법은 [INSTALL.md](INSTALL.md)를 참조하세요.
96
+
97
+ ## 💡 사용 예시
98
+
99
+ ### 🤖 AI Agent와의 연동
100
+ ```typescript
101
+ // AI Agent가 학습한 내용을 기억에 저장
102
+ await client.callTool({
103
+ name: "remember",
104
+ arguments: {
105
+ content: "사용자는 React Hook을 학습했습니다. useState는 상태를 관리하고, useEffect는 사이드 이펙트를 처리합니다.",
106
+ type: "episodic",
107
+ tags: ["react", "hooks", "javascript"],
108
+ importance: 0.8
109
+ }
110
+ });
111
+
112
+ // 나중에 관련 정보를 검색
113
+ const results = await client.callTool({
114
+ name: "recall",
115
+ arguments: {
116
+ query: "React Hook 사용법",
117
+ limit: 5
118
+ }
119
+ });
120
+ ```
121
+
122
+ ### 📚 지식 관리 시스템
123
+ ```typescript
124
+ // 중요한 지식을 의미기억으로 저장
125
+ await client.callTool({
126
+ name: "remember",
127
+ arguments: {
128
+ content: "TypeScript의 제네릭은 타입을 매개변수화하여 재사용 가능한 컴포넌트를 만드는 기능입니다.",
129
+ type: "semantic",
130
+ tags: ["typescript", "generics", "programming"],
131
+ importance: 0.9
132
+ }
133
+ });
134
+ ```
135
+
136
+ ### 🔧 절차 기억 관리
137
+ ```typescript
138
+ // 작업 절차를 절차기억으로 저장
139
+ await client.callTool({
140
+ name: "remember",
141
+ arguments: {
142
+ content: "Docker 컨테이너 빌드 및 배포 절차: 1) Dockerfile 작성 2) docker build 실행 3) docker run으로 테스트 4) 레지스트리에 푸시",
143
+ type: "procedural",
144
+ tags: ["docker", "deployment", "devops"],
145
+ importance: 0.7
146
+ }
147
+ });
148
+ ```
149
+
150
+ ## 🛠️ 사용법
151
+
152
+ ### MCP 클라이언트 연결
153
+
154
+ ```typescript
155
+ import { Client } from "@modelcontextprotocol/sdk/client/index.js";
156
+
157
+ const client = new Client({
158
+ name: "memento-client",
159
+ version: "0.1.0"
160
+ }, {
161
+ capabilities: {
162
+ tools: {},
163
+ resources: {},
164
+ prompts: {}
165
+ }
166
+ });
167
+
168
+ // stdio 연결
169
+ await client.connect({
170
+ command: "node",
171
+ args: ["dist/server/index.js"]
172
+ });
173
+
174
+ // WebSocket 연결
175
+ await client.connect({
176
+ transport: {
177
+ type: "websocket",
178
+ url: "ws://localhost:9001/mcp"
179
+ }
180
+ });
181
+ ```
182
+
183
+ ### 기억 저장
184
+
185
+ ```typescript
186
+ // 기억 저장
187
+ const result = await client.callTool({
188
+ name: "remember",
189
+ arguments: {
190
+ content: "React Hook에 대해 학습했습니다. useState는 상태를 관리하고, useEffect는 사이드 이펙트를 처리합니다.",
191
+ type: "episodic",
192
+ tags: ["react", "hooks", "javascript"],
193
+ importance: 0.8
194
+ }
195
+ });
196
+ ```
197
+
198
+ ### 기억 검색
199
+
200
+ ```typescript
201
+ // 기억 검색
202
+ const results = await client.callTool({
203
+ name: "recall",
204
+ arguments: {
205
+ query: "React Hook",
206
+ filters: {
207
+ type: ["episodic", "semantic"],
208
+ tags: ["react"]
209
+ },
210
+ limit: 10
211
+ }
212
+ });
213
+ ```
214
+
215
+ ## 📚 문서
216
+
217
+ - [임베딩 서비스 가이드](docs/ko/embedding-service-guide.md) - 임베딩 서비스 사용법
218
+ - [성능 벤치마크](docs/ko/embedding-performance-benchmark.md) - 성능 비교 결과
219
+ - [API 레퍼런스](docs/ko/embedding-api-reference.md) - API 상세 문서
220
+ - [설정 가이드](docs/ko/embedding-configuration.md) - 환경 설정 방법
221
+
222
+ ## 📋 API 문서
223
+
224
+ ### MCP Tools (핵심 5개만)
225
+
226
+ > **중요**: MCP 클라이언트는 핵심 메모리 관리 기능 5개만 노출합니다.
227
+ > 관리 기능들은 HTTP API 엔드포인트로 분리되었습니다.
228
+
229
+ | Tool | 설명 | 파라미터 |
230
+ |------|------|----------|
231
+ | `remember` | 기억 저장 | content, type, tags, importance, source, privacy_scope |
232
+ | `recall` | 기억 검색 | query, filters, limit |
233
+ | `pin` | 기억 고정 | memory_id |
234
+ | `unpin` | 기억 고정 해제 | memory_id |
235
+ | `forget` | 기억 삭제 | memory_id, hard |
236
+
237
+ ### HTTP 관리 API
238
+
239
+ | 엔드포인트 | 설명 | 메서드 |
240
+ |-----------|------|--------|
241
+ | `/admin/memory/cleanup` | 메모리 정리 | POST |
242
+ | `/admin/stats/forgetting` | 망각 통계 조회 | GET |
243
+ | `/admin/stats/performance` | 성능 통계 조회 | GET |
244
+ | `/admin/stats/errors` | 에러 통계 조회 | GET |
245
+ | `/admin/errors/resolve` | 에러 해결 | POST |
246
+ | `/admin/alerts/performance` | 성능 알림 조회 | GET |
247
+ | `/admin/database/optimize` | 데이터베이스 최적화 | POST |
248
+
249
+ ### Resources
250
+
251
+ | Resource | 설명 |
252
+ |----------|------|
253
+ | `memory/{id}` | 단일 기억 상세 정보 |
254
+ | `memory/search?query=...` | 검색 결과 캐시 |
255
+
256
+ ## 🔧 설정
257
+
258
+ ### 환경 변수
259
+
260
+ | 변수 | 기본값 | 설명 |
261
+ |------|--------|------|
262
+ | `NODE_ENV` | development | 실행 환경 |
263
+ | `PORT` | 9001 | 서버 포트 |
264
+ | `DB_PATH` | ./data/memory.db | 데이터베이스 경로 |
265
+ | `LOG_LEVEL` | info | 로그 레벨 |
266
+ | `OPENAI_API_KEY` | - | OpenAI API 키 (선택사항) |
267
+
268
+ ### 망각 정책 설정
269
+
270
+ ```bash
271
+ # 망각 임계값
272
+ FORGET_THRESHOLD=0.6
273
+ SOFT_DELETE_THRESHOLD=0.6
274
+ HARD_DELETE_THRESHOLD=0.8
275
+
276
+ # TTL 설정 (일 단위)
277
+ TTL_SOFT_WORKING=2
278
+ TTL_SOFT_EPISODIC=30
279
+ TTL_SOFT_SEMANTIC=180
280
+ TTL_SOFT_PROCEDURAL=90
281
+ ```
282
+
283
+ ## 🧪 테스트
284
+
285
+ ```bash
286
+ # 모든 테스트 실행 (Vitest)
287
+ npm run test
288
+
289
+ # 개별 테스트 실행
290
+ npm run test:client # 클라이언트 테스트
291
+ npm run test:search # 검색 기능 테스트
292
+ npm run test:embedding # 임베딩 기능 테스트
293
+ npm run test:lightweight-embedding # 경량 임베딩 테스트
294
+ npm run test:forgetting # 망각 정책 테스트
295
+ npm run test:performance # 성능 벤치마크
296
+ npm run test:monitoring # 성능 모니터링 테스트
297
+ npm run test:error-logging # 에러 로깅 테스트
298
+ npm run test:performance-alerts # 성능 알림 테스트
299
+
300
+ # 테스트 감시 모드
301
+ npm run test -- --watch
302
+
303
+ # 커버리지 포함 테스트
304
+ npm run test -- --coverage
305
+ ```
306
+
307
+ ## 📚 개발자 가이드라인
308
+
309
+ ### 저장소 가이드라인 (`AGENTS.md`)
310
+ - **프로젝트 구조**: `src/` 하위 모듈별 조직화
311
+ - **빌드/테스트 명령어**: `npm run dev`, `npm run build`, `npm run test` 등
312
+ - **코딩 스타일**: Node.js ≥ 20, TypeScript ES 모듈, 2칸 들여쓰기
313
+ - **테스트 가이드라인**: Vitest 기반, `src/test/` 또는 `*.spec.ts` 파일
314
+ - **커밋/PR 가이드라인**: Conventional Commits, 한국어 컨텍스트 포함
315
+ - **환경/데이터베이스**: `.env` 설정, `data/` 폴더 관리
316
+
317
+ ## 📊 성능 지표
318
+
319
+ ### 기본 성능
320
+ - **데이터베이스 성능**: 평균 쿼리 시간 0.16-0.22ms
321
+ - **검색 성능**: 0.78-4.24ms (캐시 효과로 개선)
322
+ - **메모리 사용량**: 11-15MB 힙 사용량
323
+ - **동시 연결**: 최대 1000개 연결 지원
324
+
325
+ ### 고급 성능 최적화
326
+ - **캐시 히트율**: 80% 이상 (검색 결과 캐싱)
327
+ - **임베딩 캐싱**: 24시간 TTL로 비용 절약
328
+ - **비동기 처리**: 워커 풀 기반 병렬 처리
329
+ - **데이터베이스 최적화**: 자동 인덱스 추천 및 생성
330
+ - **실시간 모니터링**: 30초마다 자동 성능 체크
331
+ - **에러 로깅**: 구조화된 에러 추적 및 통계
332
+ - **성능 알림**: 임계값 기반 자동 알림 시스템
333
+
334
+ ### 경량 임베딩 성능
335
+ - **TF-IDF 벡터화**: 512차원 고정 벡터 생성
336
+ - **다국어 지원**: 한국어/영어 불용어 제거
337
+ - **로컬 처리**: OpenAI API 없이 동작
338
+ - **코사인 유사도**: 빠른 벡터 검색
339
+
340
+ ## 🏗️ 아키텍처
341
+
342
+ ### M1: 개인용 (현재 구현)
343
+ - **스토리지**: better-sqlite3 임베디드
344
+ - **인덱스**: FTS5 + sqlite-vss
345
+ - **인증**: 없음 (로컬 전용)
346
+ - **운영**: 로컬 실행
347
+ - **MCP 클라이언트**: 핵심 5개 도구만 노출
348
+ - **관리 기능**: HTTP API로 분리
349
+ - **추가 기능**: 경량 임베딩, 성능 모니터링, 캐시 시스템
350
+
351
+ ### M2: 팀 협업 (계획)
352
+ - **스토리지**: SQLite 서버 모드
353
+ - **인증**: API Key
354
+ - **운영**: Docker 단일 컨테이너
355
+
356
+ ### M3: 조직 초입 (계획)
357
+ - **스토리지**: PostgreSQL + pgvector
358
+ - **인증**: JWT
359
+ - **운영**: Docker Compose
360
+
361
+ ## ❓ 자주 묻는 질문 (FAQ)
362
+
363
+ ### Q: Memento는 어떤 AI Agent와 호환되나요?
364
+ A: MCP(Model Context Protocol)를 지원하는 모든 AI Agent와 호환됩니다. Claude, GPT-4, Gemini 등과 연동 가능합니다.
365
+
366
+ ### Q: 기억 데이터는 어디에 저장되나요?
367
+ A: 기본적으로 로컬 SQLite 데이터베이스(`./data/memory.db`)에 저장됩니다. Docker를 사용하는 경우 컨테이너 내부에 저장됩니다.
368
+
369
+ ### Q: OpenAI API 키가 필요한가요?
370
+ A: 선택사항입니다. OpenAI API 키가 없어도 TF-IDF 기반 경량 임베딩으로 동작합니다. 더 정확한 검색을 원한다면 OpenAI API 키를 설정하세요.
371
+
372
+ ### Q: 기억 용량에 제한이 있나요?
373
+ A: SQLite 데이터베이스의 제한에 따라 달라집니다. 일반적으로 수백만 개의 기억을 저장할 수 있습니다.
374
+
375
+ ### Q: 다른 사용자와 기억을 공유할 수 있나요?
376
+ A: 현재 M1 버전은 개인용입니다. M2 버전부터 팀 협업 기능이 추가될 예정입니다.
377
+
378
+ ### Q: 기억이 자동으로 삭제되나요?
379
+ A: 네, 망각 정책에 따라 자동으로 삭제됩니다. 중요한 기억은 `pin` 기능으로 고정할 수 있습니다.
380
+
381
+ ## 🤝 기여하기
382
+
383
+ Memento 프로젝트에 기여하고 싶으신가요? 자세한 가이드는 [CONTRIBUTING.md](CONTRIBUTING.md)를 참조하세요.
384
+
385
+ ### 빠른 기여 시작
386
+ 1. **Fork** the Project
387
+ 2. **Create** your Feature Branch (`git checkout -b feature/AmazingFeature`)
388
+ 3. **Commit** your Changes (`git commit -m 'feat: add some AmazingFeature'`)
389
+ 4. **Push** to the Branch (`git push origin feature/AmazingFeature`)
390
+ 5. **Open** a Pull Request
391
+
392
+ ### 개발 환경 설정
393
+ ```bash
394
+ # 저장소 포크 후 클론
395
+ git clone https://github.com/your-username/memento.git
396
+ cd memento
397
+
398
+ # 의존성 설치
399
+ npm install
400
+
401
+ # 개발 서버 시작
402
+ npm run dev
403
+
404
+ # 테스트 실행
405
+ npm run test
406
+ ```
407
+
408
+ ### 기여 방법
409
+ - 🐛 **버그 리포트**: [GitHub Issues](https://github.com/jee1/memento/issues)에서 버그를 신고하세요
410
+ - 💡 **기능 제안**: 새로운 아이디어를 제안해주세요
411
+ - 📝 **문서 개선**: 문서를 더 명확하게 만들어주세요
412
+ - 🔧 **코드 기여**: 새로운 기능이나 버그 수정을 도와주세요
413
+
414
+ ## 📄 라이선스
415
+
416
+ 이 프로젝트는 MIT 라이선스 하에 배포됩니다. 자세한 내용은 `LICENSE` 파일을 참조하세요.
417
+
418
+ ## 📞 지원
419
+
420
+ - 이슈 리포트: [GitHub Issues](https://github.com/jee1/memento/issues)
421
+ - 문서: [Wiki](https://github.com/jee1/memento/wiki)
422
+ - 개발자 가이드: [docs/developer-guide.md](docs/developer-guide.md)
423
+ - API 참조: [docs/api-reference.md](docs/api-reference.md)
424
+
425
+ ## 🙏 감사의 말
426
+
427
+ - [Model Context Protocol](https://modelcontextprotocol.io/) - MCP 프로토콜
428
+ - [OpenAI](https://openai.com/) - 임베딩 서비스
429
+ - [better-sqlite3](https://github.com/WiseLibs/better-sqlite3) - 고성능 SQLite 드라이버
430
+ - [Express](https://expressjs.com/) - 웹 프레임워크
431
+ - [Vitest](https://vitest.dev/) - 테스트 프레임워크
432
+ - [TypeScript](https://www.typescriptlang.org/) - 개발 언어