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,369 +0,0 @@
1
- ---
2
- globs: *.ts,*.js
3
- description: 실제 구현된 기능들에 대한 개발 규칙
4
- ---
5
-
6
- # 실제 구현 규칙
7
-
8
- ## 📋 현재 구현 상태
9
-
10
- ### ✅ 구현 완료된 기능들
11
-
12
- #### 1. MCP 서버 (`src/server/index.ts`)
13
- - **파일 크기**: 432줄
14
- - **구현된 Tools**:
15
- - `remember`: 기억 저장 (Zod 스키마 검증 포함)
16
- - `recall`: 기억 검색 (필터링 지원)
17
- - `forget`: 기억 삭제 (소프트/하드)
18
- - `pin`/`unpin`: 기억 고정/해제
19
- - **에러 처리**: 구조화된 에러 응답
20
- - **로깅**: 상세한 로그 출력
21
-
22
- #### 2. 검색 엔진 (`src/algorithms/search-engine.ts`)
23
- - **파일 크기**: 233줄
24
- - **구현된 기능**:
25
- - FTS5 텍스트 검색
26
- - 검색 랭킹 알고리즘
27
- - 필터링 시스템
28
- - 결과 정렬 및 제한
29
- - **성능 최적화**: 인덱스 활용
30
-
31
- #### 3. 검색 랭킹 (`src/algorithms/search-ranking.ts`)
32
- - **구현된 알고리즘**:
33
- - 관련성 계산
34
- - 최근성 계산
35
- - 중요도 계산
36
- - 사용성 계산
37
- - 중복 패널티 계산
38
-
39
- #### 4. 데이터베이스 (`src/database/init.ts`)
40
- - **파일 크기**: 102줄
41
- - **구현된 기능**:
42
- - better-sqlite3 데이터베이스 초기화
43
- - 스키마 생성
44
- - 인덱스 설정
45
- - 연결 관리
46
-
47
- #### 5. 클라이언트 (`src/client/index.ts`)
48
- - **구현된 기능**:
49
- - MCP 서버 연결
50
- - 기억 관리 API
51
- - 에러 처리
52
-
53
- #### 6. 하이브리드 검색 엔진 (`src/algorithms/hybrid-search-engine.ts` - 200줄)
54
- - **FTS5 + 벡터 검색 결합**: 텍스트 검색과 벡터 검색을 결합한 하이브리드 검색
55
- - **가중치 조정**: 벡터 검색 60%, 텍스트 검색 40% (기본값)
56
- - **하이브리드 점수**: 텍스트 점수와 벡터 점수를 결합한 최종 점수
57
-
58
- #### 7. 임베딩 서비스 (`src/services/embedding-service.ts` - 196줄)
59
- - **OpenAI API 연동**: `text-embedding-3-small` 모델 사용
60
- - **벡터 변환**: 텍스트를 1536차원 벡터로 변환
61
- - **유사도 검색**: 코사인 유사도 기반 검색
62
-
63
- #### 8. 메모리 임베딩 서비스 (`src/services/memory-embedding-service.ts` - 237줄)
64
- - **임베딩 저장**: 메모리와 임베딩을 데이터베이스에 저장
65
- - **벡터 검색**: 저장된 임베딩을 활용한 유사도 검색
66
- - **자동 임베딩 생성**: 메모리 저장 시 자동으로 임베딩 생성
67
-
68
- #### 9. 망각 알고리즘 (`src/algorithms/forgetting-algorithm.ts` - 244줄)
69
- - **망각 점수 계산**: Memento-Goals.md의 망각 공식 구현
70
- - **특징 기반 망각**: 최근성, 사용성, 중복 비율, 중요도, 고정 여부 고려
71
- - **가중치 시스템**: U1-U5 계수를 사용한 망각 점수 계산
72
-
73
- #### 10. 간격 반복 알고리즘 (`src/algorithms/spaced-repetition.ts` - 239줄)
74
- - **간격 반복 스케줄링**: 중요도와 사용성 기반 리뷰 간격 계산
75
- - **리콜 확률 계산**: 시간 경과에 따른 기억 강도 측정
76
- - **동적 간격 조정**: 피드백에 따른 간격 배수 조정
77
-
78
- #### 11. 망각 정책 서비스 (`src/services/forgetting-policy-service.ts` - 335줄)
79
- - **통합 메모리 관리**: 망각 알고리즘과 간격 반복 통합
80
- - **TTL 기반 정책**: 타입별 수명 관리 (working, episodic, semantic, procedural)
81
- - **소프트/하드 삭제**: 단계적 삭제 정책
82
-
83
- #### 12. HTTP 서버 (`src/server/http-server.ts` - 551줄)
84
- - **Express 기반**: RESTful API 및 WebSocket 서버
85
- - **WebSocket 지원**: 실시간 통신을 위한 WebSocket 서버
86
- - **CORS 설정**: 웹 클라이언트 지원
87
- - **콘솔 로그 충돌 해결**: MCP 프로토콜과의 호환성 개선
88
-
89
- #### 13. 성능 최적화 서비스들
90
- - **비동기 처리 최적화** (`src/services/async-optimizer.ts` - 447줄):
91
- - 워커 풀 관리 및 병렬 처리
92
- - 우선순위 기반 작업 큐
93
- - 배치 처리 및 재시도 로직
94
- - 성능 최적화된 비동기 작업 처리
95
-
96
- - **캐시 서비스** (`src/services/cache-service.ts` - 352줄):
97
- - LRU 캐시 구현 및 TTL 관리
98
- - 검색 결과 캐싱 및 임베딩 캐싱
99
- - 캐시 통계 수집 및 성능 모니터링
100
- - 메모리 효율적인 캐시 관리
101
-
102
- - **데이터베이스 최적화** (`src/services/database-optimizer.ts` - 442줄):
103
- - 자동 인덱스 추천 및 생성
104
- - 쿼리 성능 분석 및 최적화
105
- - 데이터베이스 성능 튜닝
106
- - 통계 수집 및 성능 개선
107
-
108
- - **성능 모니터링** (`src/services/performance-monitor.ts` - 367줄):
109
- - 실시간 메트릭 수집 및 분석
110
- - 임계값 모니터링 및 알림
111
- - 성능 리포트 생성 및 트렌드 분석
112
- - 시스템 상태 모니터링
113
-
114
- - **경량 하이브리드 임베딩** (`src/services/lightweight-embedding-service.ts` - 321줄):
115
- - TF-IDF + 키워드 매칭 기반 벡터화
116
- - OpenAI API 없이 사용 가능한 fallback 솔루션
117
- - 512차원 고정 벡터 생성
118
- - 한국어/영어 불용어 제거 및 텍스트 전처리
119
- - 코사인 유사도 기반 검색
120
-
121
- #### 14. 성능 벤치마크 및 테스트
122
- - **성능 벤치마크** (`src/test/performance-benchmark.ts` - 497줄):
123
- - 종합 성능 벤치마크 시스템
124
- - 메모리 저장, 검색, 캐시 성능 테스트
125
- - 동시성 및 부하 테스트
126
- - 메모리 사용량 및 성능 분석
127
-
128
- - **성능 모니터링 테스트** (`src/test-performance-monitoring.ts` - 172줄):
129
- - 모니터링 도구 기능 검증
130
- - 실시간 성능 지표 확인
131
- - 통합 모니터링 시스템 테스트
132
-
133
- #### 15. 테스트 파일들
134
- - **`test-client.ts`**: 클라이언트 테스트 (152줄)
135
- - **`test-search.ts`**: 검색 기능 테스트 (152줄)
136
- - **`test-embedding.ts`**: 임베딩 기능 테스트 (154줄)
137
- - **`test-forgetting.ts`**: 망각 정책 테스트 (163줄)
138
- - **`test-performance-monitoring.ts`**: 성능 모니터링 테스트 (172줄)
139
-
140
- ## 🏗️ 실제 아키텍처
141
-
142
- ### 현재 구현된 구조
143
- ```
144
- src/
145
- ├── algorithms/ # 검색 알고리즘
146
- │ ├── search-engine.ts # 메인 검색 엔진
147
- │ └── search-ranking.ts # 랭킹 알고리즘
148
- ├── client/ # MCP 클라이언트
149
- │ └── index.ts # 클라이언트 구현
150
- ├── config/ # 설정 관리
151
- │ └── index.ts # 설정 파일
152
- ├── database/ # 데이터베이스
153
- │ ├── init.ts # 초기화 로직
154
- │ └── schema.sql # SQLite 스키마
155
- ├── server/ # MCP 서버
156
- │ ├── index.ts # 서버 메인 (521줄)
157
- │ └── http-server.ts # HTTP/WebSocket 서버 (551줄)
158
- ├── services/ # 서비스 레이어 (신규)
159
- │ ├── embedding-service.ts # OpenAI 임베딩 서비스 (196줄)
160
- │ ├── memory-embedding-service.ts # 메모리 임베딩 서비스 (237줄)
161
- │ ├── forgetting-policy-service.ts # 망각 정책 서비스 (335줄)
162
- │ ├── async-optimizer.ts # 비동기 처리 최적화 (447줄)
163
- │ ├── cache-service.ts # 캐시 서비스 (352줄)
164
- │ ├── database-optimizer.ts # 데이터베이스 최적화 (442줄)
165
- │ └── performance-monitor.ts # 성능 모니터링 (367줄)
166
- ├── types/ # 타입 정의
167
- │ └── index.ts # 공통 타입
168
- ├── utils/ # 유틸리티
169
- │ └── database.ts # DB 유틸리티
170
- ├── test/ # 테스트 디렉토리 (신규)
171
- │ └── performance-benchmark.ts # 성능 벤치마크 (497줄)
172
- ├── test-client.ts # 클라이언트 테스트
173
- ├── test-search.ts # 검색 테스트
174
- ├── test-embedding.ts # 임베딩 테스트
175
- ├── test-forgetting.ts # 망각 정책 테스트
176
- └── test-performance-monitoring.ts # 성능 모니터링 테스트 (172줄)
177
- ```
178
-
179
- ## 🔧 실제 사용 가능한 명령어
180
-
181
- ### 개발 명령어
182
- ```bash
183
- # 개발 서버 실행 (핫 리로드)
184
- npm run dev
185
-
186
- # 빌드 (TypeScript 컴파일 + 에셋 복사)
187
- npm run build
188
-
189
- # 프로덕션 실행
190
- npm run start
191
-
192
- # 타입 체크
193
- npm run type-check
194
-
195
- # 린트 검사
196
- npm run lint
197
- ```
198
-
199
- ### 테스트 명령어
200
- ```bash
201
- # Vitest 테스트 실행
202
- npm run test
203
-
204
- # 클라이언트 테스트
205
- npm run test:client
206
-
207
- # 검색 기능 테스트
208
- npm run test:search
209
-
210
- # 임베딩 기능 테스트
211
- npm run test:embedding
212
-
213
- # 망각 정책 테스트
214
- npm run test:forgetting
215
-
216
- # 성능 모니터링 테스트
217
- npm run test:performance
218
- ```
219
-
220
- ### 데이터베이스 명령어
221
- ```bash
222
- # 데이터베이스 초기화
223
- npm run db:init
224
-
225
- # 데이터베이스 마이그레이션
226
- npm run db:migrate
227
- ```
228
-
229
- ## 📦 실제 의존성
230
-
231
- ### 프로덕션 의존성
232
- ```json
233
- {
234
- "@modelcontextprotocol/sdk": "^0.5.0",
235
- "axios": "^1.12.2",
236
- "better-sqlite3": "^12.4.1",
237
- "cors": "^2.8.5",
238
- "dotenv": "^16.3.1",
239
- "express": "^5.1.0",
240
- "openai": "^4.20.1",
241
- "uuid": "^9.0.1",
242
- "ws": "^8.18.3",
243
- "zod": "^3.22.4"
244
- }
245
- ```
246
-
247
- ### 개발 의존성
248
- ```json
249
- {
250
- "@types/better-sqlite3": "^7.6.13",
251
- "@types/cors": "^2.8.19",
252
- "@types/express": "^5.0.3",
253
- "@types/node": "^20.10.0",
254
- "@types/uuid": "^9.0.7",
255
- "@types/ws": "^8.18.1",
256
- "@typescript-eslint/eslint-plugin": "^6.13.0",
257
- "@typescript-eslint/parser": "^6.13.0",
258
- "eslint": "^8.54.0",
259
- "tsx": "^4.6.0",
260
- "typescript": "^5.3.0",
261
- "vitest": "^1.0.0"
262
- }
263
- ```
264
-
265
- ## 🧪 실제 테스트 구조
266
-
267
- ### 테스트 파일들
268
- - **`test-client.ts`**: MCP 클라이언트 통합 테스트
269
- - **`test-search.ts`**: 검색 기능 상세 테스트
270
- - **Vitest 설정**: `vitest.config.ts`
271
-
272
- ### 테스트 실행 방법
273
- ```bash
274
- # 모든 테스트 실행 (Vitest)
275
- npm run test
276
-
277
- # 특정 테스트 실행
278
- npm run test:client
279
- npm run test:search
280
- npm run test:embedding
281
- npm run test:lightweight-embedding
282
- npm run test:forgetting
283
- npm run test:performance
284
- npm run test:monitoring
285
-
286
- # 테스트 감시 모드
287
- npm run test -- --watch
288
- ```
289
-
290
- ## 🔍 실제 검색 구현
291
-
292
- ### 검색 엔진 특징
293
- - **FTS5 활용**: SQLite의 Full-Text Search
294
- - **랭킹 알고리즘**: 관련성, 최근성, 중요도, 사용성 종합
295
- - **필터링**: 타입, 태그, 시간 범위, 고정 여부
296
- - **성능 최적화**: 인덱스 기반 검색
297
-
298
- ### 검색 쿼리 예시
299
- ```typescript
300
- // 기본 검색
301
- const results = await searchEngine.search(db, {
302
- query: "React Hook",
303
- limit: 10
304
- });
305
-
306
- // 필터링된 검색
307
- const filteredResults = await searchEngine.search(db, {
308
- query: "TypeScript",
309
- filters: {
310
- type: ['episodic', 'semantic'],
311
- tags: ['programming'],
312
- pinned: false
313
- },
314
- limit: 5
315
- });
316
- ```
317
-
318
- ## 🗄️ 실제 데이터베이스 구조
319
-
320
- ### better-sqlite3 스키마
321
- - **`memory_item`**: 기억 아이템 테이블
322
- - **`memory_embedding`**: 임베딩 테이블
323
- - **`memory_tag`**: 태그 테이블
324
- - **`memory_item_tag`**: 기억-태그 관계 테이블
325
- - **`memory_link`**: 기억 간 관계 테이블
326
- - **`feedback_event`**: 피드백 이벤트 테이블
327
- - **`wm_buffer`**: 작업기억 버퍼 테이블
328
-
329
- ### 인덱스
330
- - **FTS5**: 텍스트 검색용
331
- - **일반 인덱스**: 타입, 생성일, 중요도, 고정 여부
332
- - **복합 인덱스**: 사용자별, 프로젝트별 검색 최적화
333
-
334
- ## 🚀 실제 배포 상태
335
-
336
- ### 빌드 결과물
337
- - **`dist/`**: TypeScript 컴파일 결과
338
- - **소스맵**: `.js.map` 파일들
339
- - **타입 정의**: `.d.ts` 파일들
340
- - **에셋 복사**: `schema.sql` 등
341
-
342
- ### 환경 설정
343
- - **`env.example`**: 환경 변수 예시
344
- - **`mcp.json`**: MCP 설정 파일
345
- - **`tsconfig.json`**: TypeScript 설정
346
- - **`vitest.config.ts`**: 테스트 설정
347
-
348
- ## 📋 개발 가이드라인
349
-
350
- ### 코드 작성 규칙
351
- 1. **TypeScript 엄격 모드**: 모든 타입 명시
352
- 2. **Zod 스키마**: 입력 검증 필수
353
- 3. **에러 처리**: 구조화된 에러 응답
354
- 4. **로깅**: 상세한 로그 출력
355
- 5. **테스트**: 각 기능별 테스트 작성
356
-
357
- ### 파일 구조 규칙
358
- 1. **모듈 분리**: 기능별 파일 분리
359
- 2. **타입 정의**: `types/index.ts`에 집중
360
- 3. **유틸리티**: `utils/` 폴더에 공통 함수
361
- 4. **설정**: `config/` 폴더에 설정 관리
362
- 5. **테스트**: `test-*.ts` 형식으로 테스트 파일
363
-
364
- ### 성능 고려사항
365
- 1. **인덱스 활용**: 데이터베이스 쿼리 최적화
366
- 2. **캐싱**: 검색 결과 캐싱 고려
367
- 3. **배치 처리**: 대량 데이터 처리 시 배치 사용
368
- 4. **메모리 관리**: 연결 풀 관리
369
- 5. **에러 복구**: 데이터베이스 연결 실패 시 재시도
@@ -1,178 +0,0 @@
1
- ---
2
- globs: *lightweight-embedding*
3
- description: Memento 프로젝트의 경량 하이브리드 임베딩 서비스 개발 규칙입니다. TF-IDF + 키워드 매칭 기반 벡터화를 통해 OpenAI 없이도 임베딩 기능을 제공하는 fallback 솔루션의 가이드라인을 제공합니다.
4
- ---
5
-
6
- # 경량 하이브리드 임베딩 서비스 개발 규칙
7
-
8
- ## 🎯 개요
9
-
10
- 경량 하이브리드 임베딩 서비스는 OpenAI API가 없을 때 사용하는 fallback 솔루션입니다. TF-IDF + 키워드 매칭 기반으로 512차원 고정 벡터를 생성하여 의미적 검색을 제공합니다.
11
-
12
- ## 📁 파일 구조
13
-
14
- ```
15
- src/services/
16
- ├── lightweight-embedding-service.ts # 메인 서비스 (321줄)
17
- └── test-lightweight-embedding.ts # 테스트 파일
18
- ```
19
-
20
- ## 🔧 핵심 기능
21
-
22
- ### 1. TF-IDF 벡터화
23
- - **차원**: 512차원 고정 벡터
24
- - **토큰화**: 한국어/영어 불용어 제거
25
- - **정규화**: 코사인 정규화 적용
26
- - **캐싱**: 24시간 TTL로 결과 캐싱
27
-
28
- ### 2. 키워드 매칭
29
- - **BM25 스코어**: 키워드 가중치 계산
30
- - **태그 매칭**: 메타데이터 기반 보정
31
- - **타이틀 히트**: 제목 매칭 보너스
32
-
33
- ### 3. 하이브리드 점수 계산
34
- ```typescript
35
- finalScore = (tfidfScore * 0.6) + (keywordScore * 0.4)
36
- ```
37
-
38
- ## 🛠️ 개발 가이드라인
39
-
40
- ### 서비스 인터페이스
41
- ```typescript
42
- interface LightweightEmbeddingService {
43
- // 임베딩 생성
44
- generateEmbedding(text: string): Promise<number[]>;
45
-
46
- // 유사도 계산
47
- calculateSimilarity(embedding1: number[], embedding2: number[]): number;
48
-
49
- // 검색 점수 계산
50
- calculateSearchScore(query: string, content: string, tags?: string[]): number;
51
- }
52
- ```
53
-
54
- ### 텍스트 전처리
55
- ```typescript
56
- // 한국어/영어 불용어 제거
57
- const stopWords = ['의', '을', '를', '이', '가', '은', '는', 'the', 'a', 'an', 'and', 'or'];
58
-
59
- // 토큰화 및 정규화
60
- const tokens = text
61
- .toLowerCase()
62
- .replace(/[^\w\s가-힣]/g, ' ')
63
- .split(/\s+/)
64
- .filter(token => token.length > 1 && !stopWords.includes(token));
65
- ```
66
-
67
- ### 벡터 생성
68
- ```typescript
69
- // TF-IDF 계산
70
- const tf = calculateTermFrequency(tokens);
71
- const idf = calculateInverseDocumentFrequency(tokens, corpus);
72
- const tfidf = tf.map((freq, index) => freq * idf[index]);
73
-
74
- // 512차원으로 패딩/트런케이트
75
- const vector = padOrTruncate(tfidf, 512);
76
-
77
- // 코사인 정규화
78
- const normalizedVector = cosineNormalize(vector);
79
- ```
80
-
81
- ## 📊 성능 최적화
82
-
83
- ### 1. 캐싱 전략
84
- - **임베딩 캐시**: 24시간 TTL
85
- - **IDF 캐시**: 7일 TTL
86
- - **어휘 캐시**: 30일 TTL
87
-
88
- ### 2. 메모리 관리
89
- - **벡터 풀**: 재사용 가능한 벡터 배열
90
- - **가비지 컬렉션**: 주기적 메모리 정리
91
- - **스트리밍**: 대용량 텍스트 처리
92
-
93
- ### 3. 병렬 처리
94
- - **워커 스레드**: CPU 집약적 작업 분리
95
- - **배치 처리**: 여러 텍스트 동시 처리
96
- - **비동기 처리**: 논블로킹 I/O
97
-
98
- ## 🧪 테스트 가이드라인
99
-
100
- ### 단위 테스트
101
- ```typescript
102
- describe('LightweightEmbeddingService', () => {
103
- it('should generate consistent embeddings', async () => {
104
- const service = new LightweightEmbeddingService();
105
- const text = 'React Hook 사용법';
106
-
107
- const embedding1 = await service.generateEmbedding(text);
108
- const embedding2 = await service.generateEmbedding(text);
109
-
110
- expect(embedding1).toEqual(embedding2);
111
- });
112
-
113
- it('should calculate similarity correctly', async () => {
114
- const service = new LightweightEmbeddingService();
115
- const text1 = 'React Hook 사용법';
116
- const text2 = 'React Hook 활용 방법';
117
-
118
- const embedding1 = await service.generateEmbedding(text1);
119
- const embedding2 = await service.generateEmbedding(text2);
120
- const similarity = service.calculateSimilarity(embedding1, embedding2);
121
-
122
- expect(similarity).toBeGreaterThan(0.7);
123
- });
124
- });
125
- ```
126
-
127
- ### 통합 테스트
128
- ```typescript
129
- describe('LightweightEmbedding Integration', () => {
130
- it('should work as fallback for OpenAI', async () => {
131
- // OpenAI API 실패 시나리오
132
- const embeddingService = new EmbeddingService();
133
- const lightweightService = new LightweightEmbeddingService();
134
-
135
- // 자동 fallback 테스트
136
- const result = await embeddingService.generateEmbedding('test text');
137
- expect(result).toBeDefined();
138
- });
139
- });
140
- ```
141
-
142
- ## 🔍 디버깅 가이드
143
-
144
- ### 로그 레벨
145
- - **DEBUG**: 벡터 생성 과정
146
- - **INFO**: 캐시 히트/미스
147
- - **WARN**: 성능 저하 경고
148
- - **ERROR**: 임베딩 생성 실패
149
-
150
- ### 성능 메트릭
151
- - **처리 시간**: 평균 임베딩 생성 시간
152
- - **메모리 사용량**: 벡터 저장소 크기
153
- - **캐시 히트율**: 캐시 효율성
154
- - **정확도**: 검색 결과 품질
155
-
156
- ## 🚀 배포 고려사항
157
-
158
- ### 환경 변수
159
- ```bash
160
- # 경량 임베딩 설정
161
- LIGHTWEIGHT_EMBEDDING_ENABLED=true
162
- LIGHTWEIGHT_EMBEDDING_DIMENSION=512
163
- LIGHTWEIGHT_EMBEDDING_CACHE_TTL=86400
164
- LIGHTWEIGHT_EMBEDDING_WORKER_THREADS=4
165
- ```
166
-
167
- ### 모니터링
168
- - **CPU 사용률**: 벡터 계산 부하
169
- - **메모리 사용량**: 캐시 크기 모니터링
170
- - **응답 시간**: 임베딩 생성 지연
171
- - **에러율**: 처리 실패 비율
172
-
173
- ## 📚 참고 자료
174
-
175
- - [TF-IDF 알고리즘](https://en.wikipedia.org/wiki/Tf%E2%80%93idf)
176
- - [BM25 랭킹 함수](https://en.wikipedia.org/wiki/Okapi_BM25)
177
- - [코사인 유사도](https://en.wikipedia.org/wiki/Cosine_similarity)
178
- - [Node.js Worker Threads](https://nodejs.org/api/worker_threads.html)