memento-mcp-server 0.1.0

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 (555) hide show
  1. package/.cursor/rules/cache-management.mdc +171 -0
  2. package/.cursor/rules/database-schema.mdc +344 -0
  3. package/.cursor/rules/deployment.mdc +596 -0
  4. package/.cursor/rules/error-logging.mdc +298 -0
  5. package/.cursor/rules/forgetting-algorithms.mdc +426 -0
  6. package/.cursor/rules/http-server.mdc +432 -0
  7. package/.cursor/rules/hybrid-search.mdc +424 -0
  8. package/.cursor/rules/implementation.mdc +369 -0
  9. package/.cursor/rules/lightweight-embedding.mdc +178 -0
  10. package/.cursor/rules/mcp-client-development.mdc +0 -0
  11. package/.cursor/rules/mcp-server-development.mdc +0 -0
  12. package/.cursor/rules/mcp-tools-architecture.mdc +205 -0
  13. package/.cursor/rules/memento-memory-rule.mdc +8 -0
  14. package/.cursor/rules/memento-project-overview.mdc +0 -0
  15. package/.cursor/rules/memory-algorithms.mdc +502 -0
  16. package/.cursor/rules/monitoring.mdc +622 -0
  17. package/.cursor/rules/performance-alerts.mdc +537 -0
  18. package/.cursor/rules/performance-monitoring.mdc +345 -0
  19. package/.cursor/rules/performance-optimization.mdc +563 -0
  20. package/.cursor/rules/project-structure.mdc +310 -0
  21. package/.cursor/rules/testing.mdc +473 -0
  22. package/.dockerignore +15 -0
  23. package/.eslintrc.json +34 -0
  24. package/.github/ISSUE_TEMPLATE/bug_report.md +51 -0
  25. package/.github/ISSUE_TEMPLATE/feature_request.md +45 -0
  26. package/.github/ISSUE_TEMPLATE/question.md +31 -0
  27. package/.github/PULL_REQUEST_TEMPLATE.md +97 -0
  28. package/AGENTS.md +28 -0
  29. package/CHANGELOG.md +416 -0
  30. package/CODE_OF_CONDUCT.md +62 -0
  31. package/CONTRIBUTING.md +165 -0
  32. package/DOCKER_SETUP_GUIDE.md +84 -0
  33. package/Dockerfile +90 -0
  34. package/INSTALL.en.md +303 -0
  35. package/INSTALL.md +303 -0
  36. package/README.en.md +330 -0
  37. package/README.md +427 -0
  38. package/backup/legacy-removal-20250930-201816/http-server-legacy.ts +1068 -0
  39. package/backup/legacy-removal-20250930-201816/rollback-to-legacy.ps1 +46 -0
  40. package/backup/legacy-removal-20250930-201816/rollback-to-legacy.sh +48 -0
  41. package/dist/algorithms/forgetting-algorithm.d.ts +90 -0
  42. package/dist/algorithms/forgetting-algorithm.d.ts.map +1 -0
  43. package/dist/algorithms/forgetting-algorithm.js +160 -0
  44. package/dist/algorithms/forgetting-algorithm.js.map +1 -0
  45. package/dist/algorithms/hybrid-search-engine.d.ts +108 -0
  46. package/dist/algorithms/hybrid-search-engine.d.ts.map +1 -0
  47. package/dist/algorithms/hybrid-search-engine.js +384 -0
  48. package/dist/algorithms/hybrid-search-engine.js.map +1 -0
  49. package/dist/algorithms/search-engine.d.ts +64 -0
  50. package/dist/algorithms/search-engine.d.ts.map +1 -0
  51. package/dist/algorithms/search-engine.js +304 -0
  52. package/dist/algorithms/search-engine.js.map +1 -0
  53. package/dist/algorithms/search-ranking.d.ts +145 -0
  54. package/dist/algorithms/search-ranking.d.ts.map +1 -0
  55. package/dist/algorithms/search-ranking.js +311 -0
  56. package/dist/algorithms/search-ranking.js.map +1 -0
  57. package/dist/algorithms/spaced-repetition.d.ts +83 -0
  58. package/dist/algorithms/spaced-repetition.d.ts.map +1 -0
  59. package/dist/algorithms/spaced-repetition.js +153 -0
  60. package/dist/algorithms/spaced-repetition.js.map +1 -0
  61. package/dist/algorithms/vector-search-engine.d.ts +96 -0
  62. package/dist/algorithms/vector-search-engine.d.ts.map +1 -0
  63. package/dist/algorithms/vector-search-engine.js +410 -0
  64. package/dist/algorithms/vector-search-engine.js.map +1 -0
  65. package/dist/client/index.d.ts +55 -0
  66. package/dist/client/index.d.ts.map +1 -0
  67. package/dist/client/index.js +179 -0
  68. package/dist/client/index.js.map +1 -0
  69. package/dist/config/index.d.ts +20 -0
  70. package/dist/config/index.d.ts.map +1 -0
  71. package/dist/config/index.js +87 -0
  72. package/dist/config/index.js.map +1 -0
  73. package/dist/database/init.d.ts +7 -0
  74. package/dist/database/init.d.ts.map +1 -0
  75. package/dist/database/init.js +117 -0
  76. package/dist/database/init.js.map +1 -0
  77. package/dist/database/migrate.d.ts +6 -0
  78. package/dist/database/migrate.d.ts.map +1 -0
  79. package/dist/database/migrate.js +84 -0
  80. package/dist/database/migrate.js.map +1 -0
  81. package/dist/database/schema.sql +159 -0
  82. package/dist/npm-client/context-injector.d.ts +106 -0
  83. package/dist/npm-client/context-injector.d.ts.map +1 -0
  84. package/dist/npm-client/context-injector.js +296 -0
  85. package/dist/npm-client/context-injector.js.map +1 -0
  86. package/dist/npm-client/index.d.ts +42 -0
  87. package/dist/npm-client/index.d.ts.map +1 -0
  88. package/dist/npm-client/index.js +43 -0
  89. package/dist/npm-client/index.js.map +1 -0
  90. package/dist/npm-client/memento-client.d.ts +114 -0
  91. package/dist/npm-client/memento-client.d.ts.map +1 -0
  92. package/dist/npm-client/memento-client.js +391 -0
  93. package/dist/npm-client/memento-client.js.map +1 -0
  94. package/dist/npm-client/memory-manager.d.ts +137 -0
  95. package/dist/npm-client/memory-manager.d.ts.map +1 -0
  96. package/dist/npm-client/memory-manager.js +341 -0
  97. package/dist/npm-client/memory-manager.js.map +1 -0
  98. package/dist/npm-client/types.d.ts +216 -0
  99. package/dist/npm-client/types.d.ts.map +1 -0
  100. package/dist/npm-client/types.js +44 -0
  101. package/dist/npm-client/types.js.map +1 -0
  102. package/dist/npm-client/utils.d.ts +91 -0
  103. package/dist/npm-client/utils.d.ts.map +1 -0
  104. package/dist/npm-client/utils.js +351 -0
  105. package/dist/npm-client/utils.js.map +1 -0
  106. package/dist/scripts/copy-assets.d.ts +3 -0
  107. package/dist/scripts/copy-assets.d.ts.map +1 -0
  108. package/dist/scripts/copy-assets.js +31 -0
  109. package/dist/scripts/copy-assets.js.map +1 -0
  110. package/dist/server/http-server.d.ts +28 -0
  111. package/dist/server/http-server.d.ts.map +1 -0
  112. package/dist/server/http-server.js +930 -0
  113. package/dist/server/http-server.js.map +1 -0
  114. package/dist/server/index-backup.d.ts +5 -0
  115. package/dist/server/index-backup.d.ts.map +1 -0
  116. package/dist/server/index-backup.js +793 -0
  117. package/dist/server/index-backup.js.map +1 -0
  118. package/dist/server/index-refactored.d.ts +6 -0
  119. package/dist/server/index-refactored.d.ts.map +1 -0
  120. package/dist/server/index-refactored.js +206 -0
  121. package/dist/server/index-refactored.js.map +1 -0
  122. package/dist/server/index.d.ts +12 -0
  123. package/dist/server/index.d.ts.map +1 -0
  124. package/dist/server/index.js +301 -0
  125. package/dist/server/index.js.map +1 -0
  126. package/dist/server/simple-mcp-server.d.ts +8 -0
  127. package/dist/server/simple-mcp-server.d.ts.map +1 -0
  128. package/dist/server/simple-mcp-server.js +152 -0
  129. package/dist/server/simple-mcp-server.js.map +1 -0
  130. package/dist/services/async-optimizer.d.ts +136 -0
  131. package/dist/services/async-optimizer.d.ts.map +1 -0
  132. package/dist/services/async-optimizer.js +406 -0
  133. package/dist/services/async-optimizer.js.map +1 -0
  134. package/dist/services/batch-scheduler.d.ts +156 -0
  135. package/dist/services/batch-scheduler.d.ts.map +1 -0
  136. package/dist/services/batch-scheduler.js +612 -0
  137. package/dist/services/batch-scheduler.js.map +1 -0
  138. package/dist/services/cache-service.d.ts +168 -0
  139. package/dist/services/cache-service.d.ts.map +1 -0
  140. package/dist/services/cache-service.js +360 -0
  141. package/dist/services/cache-service.js.map +1 -0
  142. package/dist/services/database-optimizer.d.ts +110 -0
  143. package/dist/services/database-optimizer.d.ts.map +1 -0
  144. package/dist/services/database-optimizer.js +369 -0
  145. package/dist/services/database-optimizer.js.map +1 -0
  146. package/dist/services/embedding-provider-factory.d.ts +62 -0
  147. package/dist/services/embedding-provider-factory.d.ts.map +1 -0
  148. package/dist/services/embedding-provider-factory.js +152 -0
  149. package/dist/services/embedding-provider-factory.js.map +1 -0
  150. package/dist/services/embedding-service.d.ts +95 -0
  151. package/dist/services/embedding-service.d.ts.map +1 -0
  152. package/dist/services/embedding-service.js +276 -0
  153. package/dist/services/embedding-service.js.map +1 -0
  154. package/dist/services/error-logging-service.d.ts +134 -0
  155. package/dist/services/error-logging-service.d.ts.map +1 -0
  156. package/dist/services/error-logging-service.js +271 -0
  157. package/dist/services/error-logging-service.js.map +1 -0
  158. package/dist/services/forgetting-policy-service.d.ts +94 -0
  159. package/dist/services/forgetting-policy-service.d.ts.map +1 -0
  160. package/dist/services/forgetting-policy-service.js +233 -0
  161. package/dist/services/forgetting-policy-service.js.map +1 -0
  162. package/dist/services/gemini-embedding-service.d.ts +82 -0
  163. package/dist/services/gemini-embedding-service.d.ts.map +1 -0
  164. package/dist/services/gemini-embedding-service.js +232 -0
  165. package/dist/services/gemini-embedding-service.js.map +1 -0
  166. package/dist/services/lightweight-embedding-service.d.ts +95 -0
  167. package/dist/services/lightweight-embedding-service.d.ts.map +1 -0
  168. package/dist/services/lightweight-embedding-service.js +263 -0
  169. package/dist/services/lightweight-embedding-service.js.map +1 -0
  170. package/dist/services/memory-embedding-service.d.ts +69 -0
  171. package/dist/services/memory-embedding-service.d.ts.map +1 -0
  172. package/dist/services/memory-embedding-service.js +223 -0
  173. package/dist/services/memory-embedding-service.js.map +1 -0
  174. package/dist/services/minilm-embedding-service.d.ts +92 -0
  175. package/dist/services/minilm-embedding-service.d.ts.map +1 -0
  176. package/dist/services/minilm-embedding-service.js +216 -0
  177. package/dist/services/minilm-embedding-service.js.map +1 -0
  178. package/dist/services/performance-alert-service.d.ts +142 -0
  179. package/dist/services/performance-alert-service.d.ts.map +1 -0
  180. package/dist/services/performance-alert-service.js +366 -0
  181. package/dist/services/performance-alert-service.js.map +1 -0
  182. package/dist/services/performance-monitor.d.ts +144 -0
  183. package/dist/services/performance-monitor.d.ts.map +1 -0
  184. package/dist/services/performance-monitor.js +416 -0
  185. package/dist/services/performance-monitor.js.map +1 -0
  186. package/dist/services/performance-monitoring-integration.d.ts +77 -0
  187. package/dist/services/performance-monitoring-integration.d.ts.map +1 -0
  188. package/dist/services/performance-monitoring-integration.js +177 -0
  189. package/dist/services/performance-monitoring-integration.js.map +1 -0
  190. package/dist/services/unified-embedding-service.d.ts +75 -0
  191. package/dist/services/unified-embedding-service.d.ts.map +1 -0
  192. package/dist/services/unified-embedding-service.js +211 -0
  193. package/dist/services/unified-embedding-service.js.map +1 -0
  194. package/dist/test/debug-http-v2.d.ts +5 -0
  195. package/dist/test/debug-http-v2.d.ts.map +1 -0
  196. package/dist/test/debug-http-v2.js +28 -0
  197. package/dist/test/debug-http-v2.js.map +1 -0
  198. package/dist/test/performance-benchmark.d.ts +57 -0
  199. package/dist/test/performance-benchmark.d.ts.map +1 -0
  200. package/dist/test/performance-benchmark.js +427 -0
  201. package/dist/test/performance-benchmark.js.map +1 -0
  202. package/dist/test/test-alerts-direct.d.ts +7 -0
  203. package/dist/test/test-alerts-direct.d.ts.map +1 -0
  204. package/dist/test/test-alerts-direct.js +101 -0
  205. package/dist/test/test-alerts-direct.js.map +1 -0
  206. package/dist/test/test-batch-scheduler.d.ts +2 -0
  207. package/dist/test/test-batch-scheduler.d.ts.map +1 -0
  208. package/dist/test/test-batch-scheduler.js +156 -0
  209. package/dist/test/test-batch-scheduler.js.map +1 -0
  210. package/dist/test/test-client.d.ts +5 -0
  211. package/dist/test/test-client.d.ts.map +1 -0
  212. package/dist/test/test-client.js +86 -0
  213. package/dist/test/test-client.js.map +1 -0
  214. package/dist/test/test-embedding.d.ts +6 -0
  215. package/dist/test/test-embedding.d.ts.map +1 -0
  216. package/dist/test/test-embedding.js +142 -0
  217. package/dist/test/test-embedding.js.map +1 -0
  218. package/dist/test/test-error-logging.d.ts +7 -0
  219. package/dist/test/test-error-logging.d.ts.map +1 -0
  220. package/dist/test/test-error-logging.js +105 -0
  221. package/dist/test/test-error-logging.js.map +1 -0
  222. package/dist/test/test-forgetting.d.ts +6 -0
  223. package/dist/test/test-forgetting.d.ts.map +1 -0
  224. package/dist/test/test-forgetting.js +154 -0
  225. package/dist/test/test-forgetting.js.map +1 -0
  226. package/dist/test/test-gemini-embedding.d.ts +7 -0
  227. package/dist/test/test-gemini-embedding.d.ts.map +1 -0
  228. package/dist/test/test-gemini-embedding.js +134 -0
  229. package/dist/test/test-gemini-embedding.js.map +1 -0
  230. package/dist/test/test-http-server-v2-simple.d.ts +6 -0
  231. package/dist/test/test-http-server-v2-simple.d.ts.map +1 -0
  232. package/dist/test/test-http-server-v2-simple.js +131 -0
  233. package/dist/test/test-http-server-v2-simple.js.map +1 -0
  234. package/dist/test/test-http-server-v2.d.ts +7 -0
  235. package/dist/test/test-http-server-v2.d.ts.map +1 -0
  236. package/dist/test/test-http-server-v2.js +529 -0
  237. package/dist/test/test-http-server-v2.js.map +1 -0
  238. package/dist/test/test-lightweight-embedding.d.ts +6 -0
  239. package/dist/test/test-lightweight-embedding.d.ts.map +1 -0
  240. package/dist/test/test-lightweight-embedding.js +189 -0
  241. package/dist/test/test-lightweight-embedding.js.map +1 -0
  242. package/dist/test/test-m1-completion.d.ts +7 -0
  243. package/dist/test/test-m1-completion.d.ts.map +1 -0
  244. package/dist/test/test-m1-completion.js +124 -0
  245. package/dist/test/test-m1-completion.js.map +1 -0
  246. package/dist/test/test-memory-injection-prompt.d.ts +2 -0
  247. package/dist/test/test-memory-injection-prompt.d.ts.map +1 -0
  248. package/dist/test/test-memory-injection-prompt.js +299 -0
  249. package/dist/test/test-memory-injection-prompt.js.map +1 -0
  250. package/dist/test/test-performance-alerts.d.ts +7 -0
  251. package/dist/test/test-performance-alerts.d.ts.map +1 -0
  252. package/dist/test/test-performance-alerts.js +109 -0
  253. package/dist/test/test-performance-alerts.js.map +1 -0
  254. package/dist/test/test-performance-monitor.d.ts +2 -0
  255. package/dist/test/test-performance-monitor.d.ts.map +1 -0
  256. package/dist/test/test-performance-monitor.js +182 -0
  257. package/dist/test/test-performance-monitor.js.map +1 -0
  258. package/dist/test/test-performance-monitoring.d.ts +6 -0
  259. package/dist/test/test-performance-monitoring.d.ts.map +1 -0
  260. package/dist/test/test-performance-monitoring.js +156 -0
  261. package/dist/test/test-performance-monitoring.js.map +1 -0
  262. package/dist/test/test-search.d.ts +5 -0
  263. package/dist/test/test-search.d.ts.map +1 -0
  264. package/dist/test/test-search.js +141 -0
  265. package/dist/test/test-search.js.map +1 -0
  266. package/dist/test/test-simple-alerts.d.ts +6 -0
  267. package/dist/test/test-simple-alerts.d.ts.map +1 -0
  268. package/dist/test/test-simple-alerts.js +106 -0
  269. package/dist/test/test-simple-alerts.js.map +1 -0
  270. package/dist/test/test-vector-search-engine.d.ts +2 -0
  271. package/dist/test/test-vector-search-engine.d.ts.map +1 -0
  272. package/dist/test/test-vector-search-engine.js +225 -0
  273. package/dist/test/test-vector-search-engine.js.map +1 -0
  274. package/dist/tools/base-tool.d.ts +64 -0
  275. package/dist/tools/base-tool.d.ts.map +1 -0
  276. package/dist/tools/base-tool.js +158 -0
  277. package/dist/tools/base-tool.js.map +1 -0
  278. package/dist/tools/cleanup-memory-tool.d.ts +10 -0
  279. package/dist/tools/cleanup-memory-tool.d.ts.map +1 -0
  280. package/dist/tools/cleanup-memory-tool.js +66 -0
  281. package/dist/tools/cleanup-memory-tool.js.map +1 -0
  282. package/dist/tools/database-optimize-tool.d.ts +10 -0
  283. package/dist/tools/database-optimize-tool.d.ts.map +1 -0
  284. package/dist/tools/database-optimize-tool.js +64 -0
  285. package/dist/tools/database-optimize-tool.js.map +1 -0
  286. package/dist/tools/error-stats.d.ts +93 -0
  287. package/dist/tools/error-stats.d.ts.map +1 -0
  288. package/dist/tools/error-stats.js +115 -0
  289. package/dist/tools/error-stats.js.map +1 -0
  290. package/dist/tools/forget-tool.d.ts +63 -0
  291. package/dist/tools/forget-tool.d.ts.map +1 -0
  292. package/dist/tools/forget-tool.js +340 -0
  293. package/dist/tools/forget-tool.js.map +1 -0
  294. package/dist/tools/forgetting-stats-tool.d.ts +10 -0
  295. package/dist/tools/forgetting-stats-tool.d.ts.map +1 -0
  296. package/dist/tools/forgetting-stats-tool.js +37 -0
  297. package/dist/tools/forgetting-stats-tool.js.map +1 -0
  298. package/dist/tools/index.d.ts +33 -0
  299. package/dist/tools/index.d.ts.map +1 -0
  300. package/dist/tools/index.js +55 -0
  301. package/dist/tools/index.js.map +1 -0
  302. package/dist/tools/memory-injection-prompt.d.ts +31 -0
  303. package/dist/tools/memory-injection-prompt.d.ts.map +1 -0
  304. package/dist/tools/memory-injection-prompt.js +203 -0
  305. package/dist/tools/memory-injection-prompt.js.map +1 -0
  306. package/dist/tools/performance-alerts.d.ts +127 -0
  307. package/dist/tools/performance-alerts.d.ts.map +1 -0
  308. package/dist/tools/performance-alerts.js +208 -0
  309. package/dist/tools/performance-alerts.js.map +1 -0
  310. package/dist/tools/performance-stats-tool.d.ts +10 -0
  311. package/dist/tools/performance-stats-tool.d.ts.map +1 -0
  312. package/dist/tools/performance-stats-tool.js +38 -0
  313. package/dist/tools/performance-stats-tool.js.map +1 -0
  314. package/dist/tools/pin-tool.d.ts +39 -0
  315. package/dist/tools/pin-tool.d.ts.map +1 -0
  316. package/dist/tools/pin-tool.js +211 -0
  317. package/dist/tools/pin-tool.js.map +1 -0
  318. package/dist/tools/recall-tool.d.ts +27 -0
  319. package/dist/tools/recall-tool.d.ts.map +1 -0
  320. package/dist/tools/recall-tool.js +335 -0
  321. package/dist/tools/recall-tool.js.map +1 -0
  322. package/dist/tools/remember-tool.d.ts +10 -0
  323. package/dist/tools/remember-tool.d.ts.map +1 -0
  324. package/dist/tools/remember-tool.js +101 -0
  325. package/dist/tools/remember-tool.js.map +1 -0
  326. package/dist/tools/resolve-error.d.ts +54 -0
  327. package/dist/tools/resolve-error.d.ts.map +1 -0
  328. package/dist/tools/resolve-error.js +63 -0
  329. package/dist/tools/resolve-error.js.map +1 -0
  330. package/dist/tools/tool-registry.d.ts +134 -0
  331. package/dist/tools/tool-registry.d.ts.map +1 -0
  332. package/dist/tools/tool-registry.js +337 -0
  333. package/dist/tools/tool-registry.js.map +1 -0
  334. package/dist/tools/types.d.ts +56 -0
  335. package/dist/tools/types.d.ts.map +1 -0
  336. package/dist/tools/types.js +23 -0
  337. package/dist/tools/types.js.map +1 -0
  338. package/dist/tools/unpin-tool.d.ts +43 -0
  339. package/dist/tools/unpin-tool.d.ts.map +1 -0
  340. package/dist/tools/unpin-tool.js +233 -0
  341. package/dist/tools/unpin-tool.js.map +1 -0
  342. package/dist/types/embedding.types.d.ts +65 -0
  343. package/dist/types/embedding.types.d.ts.map +1 -0
  344. package/dist/types/embedding.types.js +6 -0
  345. package/dist/types/embedding.types.js.map +1 -0
  346. package/dist/types/index.d.ts +103 -0
  347. package/dist/types/index.d.ts.map +1 -0
  348. package/dist/types/index.js +5 -0
  349. package/dist/types/index.js.map +1 -0
  350. package/dist/utils/database.d.ts +62 -0
  351. package/dist/utils/database.d.ts.map +1 -0
  352. package/dist/utils/database.js +399 -0
  353. package/dist/utils/database.js.map +1 -0
  354. package/dist/utils/stopwords.d.ts +18 -0
  355. package/dist/utils/stopwords.d.ts.map +1 -0
  356. package/dist/utils/stopwords.js +117 -0
  357. package/dist/utils/stopwords.js.map +1 -0
  358. package/docker-compose.dev.yml +50 -0
  359. package/docker-compose.prod.yml +77 -0
  360. package/docker-compose.yml +43 -0
  361. package/docs/en/Memento-Goals.md +217 -0
  362. package/docs/en/Memento-M1-DetailSpecs.md +130 -0
  363. package/docs/en/Memento-Milestones.md +135 -0
  364. package/docs/en/Search-Ranking-Memory-Decay-Formulas.md +177 -0
  365. package/docs/en/api-reference.md +658 -0
  366. package/docs/en/architecture.md +1302 -0
  367. package/docs/en/developer-guide.md +1005 -0
  368. package/docs/en/user-manual.md +595 -0
  369. package/docs/ko/Memento-Goals.md +217 -0
  370. package/docs/ko/Memento-M1-DetailSpecs.md +130 -0
  371. package/docs/ko/Memento-Milestones.md +134 -0
  372. package/docs/ko/Search-Ranking-Memory-Decay-Formulas.md +177 -0
  373. package/docs/ko/api-reference.md +658 -0
  374. package/docs/ko/architecture.md +1302 -0
  375. package/docs/ko/developer-guide.md +1006 -0
  376. package/docs/ko/embedding-api-reference.md +122 -0
  377. package/docs/ko/embedding-configuration.md +62 -0
  378. package/docs/ko/embedding-performance-benchmark.md +62 -0
  379. package/docs/ko/embedding-service-guide.md +314 -0
  380. package/docs/ko/user-manual.md +595 -0
  381. package/env.example +49 -0
  382. package/install.sh +191 -0
  383. package/mcp-http-client.js +218 -0
  384. package/mcp.json +0 -0
  385. package/package.json +125 -0
  386. package/packages/mcp-client/docs/API-REFERENCE.md +560 -0
  387. package/packages/mcp-client/docs/BEST-PRACTICES.md +564 -0
  388. package/packages/mcp-client/docs/MIGRATION-GUIDE.md +344 -0
  389. package/packages/mcp-client/docs/PERFORMANCE-GUIDE.md +476 -0
  390. package/packages/mcp-client/docs/TROUBLESHOOTING.md +564 -0
  391. package/packages/mcp-client/package-lock.json +907 -0
  392. package/packages/mcp-client/package.json +58 -0
  393. package/packages/mcp-client/performance-optimizer.js +428 -0
  394. package/packages/mcp-client/test-basic.js +65 -0
  395. package/packages/mcp-client/test-integration.js +366 -0
  396. package/scripts/auto-setup.js +234 -0
  397. package/scripts/backup-daily.bat +28 -0
  398. package/scripts/backup-embeddings.js +108 -0
  399. package/scripts/check-db-integrity.js +93 -0
  400. package/scripts/debug-embeddings.js +184 -0
  401. package/scripts/direct-sql-migration.sql +36 -0
  402. package/scripts/docker-migration.sh +105 -0
  403. package/scripts/fix-migration.js +93 -0
  404. package/scripts/fix-vector-dimensions.js +206 -0
  405. package/scripts/migrate-embedding-data.js +307 -0
  406. package/scripts/regenerate-embeddings.js +144 -0
  407. package/scripts/restore-legacy.ps1 +60 -0
  408. package/scripts/restore-legacy.sh +62 -0
  409. package/scripts/run-migration.js +122 -0
  410. package/scripts/safe-migration.js +150 -0
  411. package/scripts/simple-migrate.js +41 -0
  412. package/scripts/simple-update.js +123 -0
  413. package/scripts/start-container.sh +10 -0
  414. package/src/algorithms/forgetting-algorithm.spec.ts +538 -0
  415. package/src/algorithms/forgetting-algorithm.ts +243 -0
  416. package/src/algorithms/hybrid-search-engine.spec.ts +484 -0
  417. package/src/algorithms/hybrid-search-engine.ts +489 -0
  418. package/src/algorithms/search-engine.spec.ts +429 -0
  419. package/src/algorithms/search-engine.ts +392 -0
  420. package/src/algorithms/search-ranking.spec.ts +293 -0
  421. package/src/algorithms/search-ranking.ts +407 -0
  422. package/src/algorithms/spaced-repetition.spec.ts +510 -0
  423. package/src/algorithms/spaced-repetition.ts +238 -0
  424. package/src/algorithms/vector-search-engine.ts +505 -0
  425. package/src/client/index.spec.ts +427 -0
  426. package/src/client/index.ts +222 -0
  427. package/src/config/index.spec.ts +339 -0
  428. package/src/config/index.ts +106 -0
  429. package/src/database/init.spec.ts +239 -0
  430. package/src/database/init.ts +130 -0
  431. package/src/database/migrate.spec.ts +293 -0
  432. package/src/database/migrate.ts +94 -0
  433. package/src/database/migrations/001_add_embedding_metadata.sql +29 -0
  434. package/src/database/schema.sql +159 -0
  435. package/src/npm-client/context-injector.spec.ts +335 -0
  436. package/src/npm-client/context-injector.ts +412 -0
  437. package/src/npm-client/index.spec.ts +108 -0
  438. package/src/npm-client/index.ts +96 -0
  439. package/src/npm-client/memento-client.spec.ts +549 -0
  440. package/src/npm-client/memento-client.ts +501 -0
  441. package/src/npm-client/memory-manager.spec.ts +374 -0
  442. package/src/npm-client/memory-manager.ts +414 -0
  443. package/src/npm-client/types.spec.ts +427 -0
  444. package/src/npm-client/types.ts +296 -0
  445. package/src/npm-client/utils.spec.ts +355 -0
  446. package/src/npm-client/utils.ts +423 -0
  447. package/src/scripts/copy-assets.js +37 -0
  448. package/src/server/http-server.spec.ts +648 -0
  449. package/src/server/http-server.ts +1030 -0
  450. package/src/server/index-backup.ts +875 -0
  451. package/src/server/index-refactored.ts +237 -0
  452. package/src/server/index.spec.ts +281 -0
  453. package/src/server/index.ts +347 -0
  454. package/src/server/simple-mcp-server.spec.ts +207 -0
  455. package/src/server/simple-mcp-server.ts +173 -0
  456. package/src/services/async-optimizer.spec.ts +569 -0
  457. package/src/services/async-optimizer.ts +484 -0
  458. package/src/services/batch-scheduler.ts +759 -0
  459. package/src/services/cache-service.spec.ts +372 -0
  460. package/src/services/cache-service.ts +434 -0
  461. package/src/services/database-optimizer.spec.ts +344 -0
  462. package/src/services/database-optimizer.ts +450 -0
  463. package/src/services/embedding-provider-factory.ts +173 -0
  464. package/src/services/embedding-service.spec.ts +342 -0
  465. package/src/services/embedding-service.ts +333 -0
  466. package/src/services/error-logging-service.spec.ts +416 -0
  467. package/src/services/error-logging-service.ts +383 -0
  468. package/src/services/forgetting-policy-service.spec.ts +140 -0
  469. package/src/services/forgetting-policy-service.ts +334 -0
  470. package/src/services/gemini-embedding-service.spec.ts +463 -0
  471. package/src/services/gemini-embedding-service.ts +283 -0
  472. package/src/services/lightweight-embedding-service.spec.ts +458 -0
  473. package/src/services/lightweight-embedding-service.ts +324 -0
  474. package/src/services/memory-embedding-service.spec.ts +417 -0
  475. package/src/services/memory-embedding-service.ts +289 -0
  476. package/src/services/minilm-embedding-service.spec.ts +104 -0
  477. package/src/services/minilm-embedding-service.ts +262 -0
  478. package/src/services/performance-alert-service.spec.ts +517 -0
  479. package/src/services/performance-alert-service.ts +477 -0
  480. package/src/services/performance-monitor.spec.ts +401 -0
  481. package/src/services/performance-monitor.ts +532 -0
  482. package/src/services/performance-monitoring-integration.spec.ts +478 -0
  483. package/src/services/performance-monitoring-integration.ts.bak +276 -0
  484. package/src/services/unified-embedding-service.spec.ts +224 -0
  485. package/src/services/unified-embedding-service.ts +255 -0
  486. package/src/test/debug-http-v2.ts +30 -0
  487. package/src/test/embedding-integration-test.spec.ts +295 -0
  488. package/src/test/embedding-integration-test.ts +295 -0
  489. package/src/test/embedding-performance-benchmark.spec.ts +354 -0
  490. package/src/test/embedding-performance-benchmark.ts +312 -0
  491. package/src/test/performance-benchmark.ts +565 -0
  492. package/src/test/test-alerts-direct.ts +136 -0
  493. package/src/test/test-batch-scheduler-simple.spec.ts +122 -0
  494. package/src/test/test-batch-scheduler.spec.ts +453 -0
  495. package/src/test/test-batch-scheduler.ts +182 -0
  496. package/src/test/test-client.ts +97 -0
  497. package/src/test/test-embedding.ts +153 -0
  498. package/src/test/test-error-handling.spec.ts +575 -0
  499. package/src/test/test-error-logging.ts +117 -0
  500. package/src/test/test-forgetting.ts +162 -0
  501. package/src/test/test-gemini-embedding.ts +159 -0
  502. package/src/test/test-http-server-v2-simple.ts +147 -0
  503. package/src/test/test-http-server-v2.ts +586 -0
  504. package/src/test/test-hybrid-search-engine.spec.ts +521 -0
  505. package/src/test/test-integration-fixed.spec.ts +612 -0
  506. package/src/test/test-integration.spec.ts +463 -0
  507. package/src/test/test-lightweight-embedding.ts +208 -0
  508. package/src/test/test-m1-completion.spec.ts +614 -0
  509. package/src/test/test-m1-completion.ts +141 -0
  510. package/src/test/test-m1-integration.spec.ts +514 -0
  511. package/src/test/test-memory-injection-prompt.spec.ts +650 -0
  512. package/src/test/test-memory-injection-prompt.ts +391 -0
  513. package/src/test/test-performance-alerts.ts +125 -0
  514. package/src/test/test-performance-monitor-updates.spec.ts +490 -0
  515. package/src/test/test-performance-monitor.spec.ts +284 -0
  516. package/src/test/test-performance-monitor.ts +228 -0
  517. package/src/test/test-performance-monitoring.ts +171 -0
  518. package/src/test/test-search.ts +151 -0
  519. package/src/test/test-simple-alerts.ts +136 -0
  520. package/src/test/test-vector-search-engine.spec.ts +408 -0
  521. package/src/test/test-vector-search-engine.ts +303 -0
  522. package/src/tools/base-tool.ts +189 -0
  523. package/src/tools/cleanup-memory-tool.ts +77 -0
  524. package/src/tools/database-optimize-tool.ts +79 -0
  525. package/src/tools/error-stats.ts +119 -0
  526. package/src/tools/forget-tool.spec.ts +613 -0
  527. package/src/tools/forget-tool.ts +454 -0
  528. package/src/tools/forgetting-stats-tool.ts +47 -0
  529. package/src/tools/index.ts +71 -0
  530. package/src/tools/memory-injection-prompt.ts +257 -0
  531. package/src/tools/performance-alerts.ts +226 -0
  532. package/src/tools/performance-stats-tool.ts +48 -0
  533. package/src/tools/pin-tool.spec.ts +497 -0
  534. package/src/tools/pin-tool.ts +277 -0
  535. package/src/tools/recall-tool.spec.ts +475 -0
  536. package/src/tools/recall-tool.ts +389 -0
  537. package/src/tools/remember-tool.spec.ts +469 -0
  538. package/src/tools/remember-tool.ts +112 -0
  539. package/src/tools/resolve-error.ts +69 -0
  540. package/src/tools/tool-registry.ts +417 -0
  541. package/src/tools/types.ts +63 -0
  542. package/src/tools/unpin-tool.spec.ts +549 -0
  543. package/src/tools/unpin-tool.ts +306 -0
  544. package/src/types/embedding.types.ts +78 -0
  545. package/src/types/index.spec.ts +420 -0
  546. package/src/types/index.ts +117 -0
  547. package/src/utils/database.spec.ts +77 -0
  548. package/src/utils/database.ts +458 -0
  549. package/src/utils/stopwords.ts +128 -0
  550. package/start-docker-setup.bat +38 -0
  551. package/static/logo.png +0 -0
  552. package/static/memento_logo.svg +2 -0
  553. package/test-docker.js +103 -0
  554. package/tsconfig.json +46 -0
  555. package/vitest.config.ts +23 -0
@@ -0,0 +1,596 @@
1
+ ---
2
+ globs: Dockerfile,docker-compose*.yml,*.yaml,*.json
3
+ description: 배포 및 컨테이너화 규칙
4
+ ---
5
+
6
+ # 배포 규칙
7
+
8
+ ## 🐳 Docker 컨테이너화
9
+
10
+ ### Dockerfile (M1 - SQLite)
11
+ ```dockerfile
12
+ # Multi-stage build for Memento MCP Server
13
+ FROM node:20-alpine AS builder
14
+
15
+ WORKDIR /app
16
+
17
+ # Copy package files
18
+ COPY package*.json ./
19
+ COPY tsconfig*.json ./
20
+
21
+ # Install dependencies
22
+ RUN npm ci --only=production
23
+
24
+ # Copy source code
25
+ COPY src/ ./src/
26
+
27
+ # Build application
28
+ RUN npm run build
29
+
30
+ # Production stage
31
+ FROM node:20-alpine AS production
32
+
33
+ # Install SQLite and VEC extension
34
+ RUN apk add --no-cache sqlite sqlite-dev
35
+
36
+ WORKDIR /app
37
+
38
+ # Copy built application
39
+ COPY --from=builder /app/dist ./dist
40
+ COPY --from=builder /app/node_modules ./node_modules
41
+ COPY --from=builder /app/package*.json ./
42
+
43
+ # Create data directory
44
+ RUN mkdir -p /app/data
45
+
46
+ # Create non-root user
47
+ RUN addgroup -g 1001 -S nodejs
48
+ RUN adduser -S memento -u 1001
49
+
50
+ # Change ownership
51
+ RUN chown -R memento:nodejs /app
52
+ USER memento
53
+
54
+ # Expose port
55
+ EXPOSE 8080
56
+
57
+ # Health check
58
+ HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
59
+ CMD node dist/health-check.js
60
+
61
+ # Start application
62
+ CMD ["node", "dist/server/index.js"]
63
+ ```
64
+
65
+ ### Dockerfile (M3+ - PostgreSQL)
66
+ ```dockerfile
67
+ FROM node:20-alpine AS builder
68
+
69
+ WORKDIR /app
70
+
71
+ # Copy package files
72
+ COPY package*.json ./
73
+ COPY tsconfig*.json ./
74
+
75
+ # Install dependencies
76
+ RUN npm ci --only=production
77
+
78
+ # Copy source code
79
+ COPY src/ ./src/
80
+
81
+ # Build application
82
+ RUN npm run build
83
+
84
+ # Production stage
85
+ FROM node:20-alpine AS production
86
+
87
+ WORKDIR /app
88
+
89
+ # Copy built application
90
+ COPY --from=builder /app/dist ./dist
91
+ COPY --from=builder /app/node_modules ./node_modules
92
+ COPY --from=builder /app/package*.json ./
93
+
94
+ # Create non-root user
95
+ RUN addgroup -g 1001 -S nodejs
96
+ RUN adduser -S memento -u 1001
97
+
98
+ # Change ownership
99
+ RUN chown -R memento:nodejs /app
100
+ USER memento
101
+
102
+ # Expose port
103
+ EXPOSE 8080
104
+
105
+ # Health check
106
+ HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
107
+ CMD node dist/health-check.js
108
+
109
+ # Start application
110
+ CMD ["node", "dist/server/index.js"]
111
+ ```
112
+
113
+ ## 🐙 Docker Compose
114
+
115
+ ### M1 - 개발 환경
116
+ ```yaml
117
+ # docker-compose.dev.yml
118
+ version: '3.8'
119
+
120
+ services:
121
+ memento-server:
122
+ build:
123
+ context: .
124
+ target: builder
125
+ ports:
126
+ - "8080:8080"
127
+ environment:
128
+ - NODE_ENV=development
129
+ - DB_PATH=/app/data/memory.db
130
+ - LOG_LEVEL=debug
131
+ volumes:
132
+ - ./data:/app/data
133
+ - ./src:/app/src
134
+ command: npm run dev
135
+ restart: unless-stopped
136
+
137
+ redis:
138
+ image: redis:7-alpine
139
+ ports:
140
+ - "6379:6379"
141
+ volumes:
142
+ - redis_data:/data
143
+ restart: unless-stopped
144
+
145
+ volumes:
146
+ redis_data:
147
+ ```
148
+
149
+ ### M2 - 팀 환경
150
+ ```yaml
151
+ # docker-compose.team.yml
152
+ version: '3.8'
153
+
154
+ services:
155
+ memento-server:
156
+ build: .
157
+ ports:
158
+ - "8080:8080"
159
+ environment:
160
+ - NODE_ENV=production
161
+ - DB_PATH=/app/data/memory.db
162
+ - API_KEY=${API_KEY}
163
+ - LOG_LEVEL=info
164
+ volumes:
165
+ - ./data:/app/data
166
+ restart: unless-stopped
167
+ depends_on:
168
+ - redis
169
+
170
+ redis:
171
+ image: redis:7-alpine
172
+ volumes:
173
+ - redis_data:/data
174
+ restart: unless-stopped
175
+
176
+ volumes:
177
+ redis_data:
178
+ ```
179
+
180
+ ### M3 - 조직 환경
181
+ ```yaml
182
+ # docker-compose.org.yml
183
+ version: '3.8'
184
+
185
+ services:
186
+ memento-server:
187
+ build: .
188
+ ports:
189
+ - "8080:8080"
190
+ environment:
191
+ - NODE_ENV=production
192
+ - DATABASE_URL=${DATABASE_URL}
193
+ - JWT_SECRET=${JWT_SECRET}
194
+ - LOG_LEVEL=info
195
+ restart: unless-stopped
196
+ depends_on:
197
+ - postgres
198
+ - redis
199
+
200
+ postgres:
201
+ image: pgvector/pgvector:pg15
202
+ environment:
203
+ - POSTGRES_DB=${POSTGRES_DB}
204
+ - POSTGRES_USER=${POSTGRES_USER}
205
+ - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
206
+ volumes:
207
+ - postgres_data:/var/lib/postgresql/data
208
+ restart: unless-stopped
209
+
210
+ redis:
211
+ image: redis:7-alpine
212
+ volumes:
213
+ - redis_data:/data
214
+ restart: unless-stopped
215
+
216
+ volumes:
217
+ postgres_data:
218
+ redis_data:
219
+ ```
220
+
221
+ ## ☸️ Kubernetes 배포
222
+
223
+ ### Namespace
224
+ ```yaml
225
+ # k8s/namespace.yaml
226
+ apiVersion: v1
227
+ kind: Namespace
228
+ metadata:
229
+ name: memento
230
+ labels:
231
+ name: memento
232
+ ```
233
+
234
+ ### ConfigMap
235
+ ```yaml
236
+ # k8s/configmap.yaml
237
+ apiVersion: v1
238
+ kind: ConfigMap
239
+ metadata:
240
+ name: memento-config
241
+ namespace: memento
242
+ data:
243
+ NODE_ENV: "production"
244
+ LOG_LEVEL: "info"
245
+ DB_PATH: "/app/data/memory.db"
246
+ ```
247
+
248
+ ### Secret
249
+ ```yaml
250
+ # k8s/secret.yaml
251
+ apiVersion: v1
252
+ kind: Secret
253
+ metadata:
254
+ name: memento-secret
255
+ namespace: memento
256
+ type: Opaque
257
+ data:
258
+ API_KEY: <base64-encoded-api-key>
259
+ JWT_SECRET: <base64-encoded-jwt-secret>
260
+ DATABASE_URL: <base64-encoded-database-url>
261
+ ```
262
+
263
+ ### Deployment
264
+ ```yaml
265
+ # k8s/deployment.yaml
266
+ apiVersion: apps/v1
267
+ kind: Deployment
268
+ metadata:
269
+ name: memento-server
270
+ namespace: memento
271
+ spec:
272
+ replicas: 3
273
+ selector:
274
+ matchLabels:
275
+ app: memento-server
276
+ template:
277
+ metadata:
278
+ labels:
279
+ app: memento-server
280
+ spec:
281
+ containers:
282
+ - name: memento-server
283
+ image: memento:latest
284
+ ports:
285
+ - containerPort: 8080
286
+ env:
287
+ - name: NODE_ENV
288
+ valueFrom:
289
+ configMapKeyRef:
290
+ name: memento-config
291
+ key: NODE_ENV
292
+ - name: API_KEY
293
+ valueFrom:
294
+ secretKeyRef:
295
+ name: memento-secret
296
+ key: API_KEY
297
+ resources:
298
+ requests:
299
+ memory: "256Mi"
300
+ cpu: "250m"
301
+ limits:
302
+ memory: "512Mi"
303
+ cpu: "500m"
304
+ livenessProbe:
305
+ httpGet:
306
+ path: /health
307
+ port: 8080
308
+ initialDelaySeconds: 30
309
+ periodSeconds: 10
310
+ readinessProbe:
311
+ httpGet:
312
+ path: /ready
313
+ port: 8080
314
+ initialDelaySeconds: 5
315
+ periodSeconds: 5
316
+ volumeMounts:
317
+ - name: data-volume
318
+ mountPath: /app/data
319
+ volumes:
320
+ - name: data-volume
321
+ persistentVolumeClaim:
322
+ claimName: memento-data-pvc
323
+ ```
324
+
325
+ ### Service
326
+ ```yaml
327
+ # k8s/service.yaml
328
+ apiVersion: v1
329
+ kind: Service
330
+ metadata:
331
+ name: memento-service
332
+ namespace: memento
333
+ spec:
334
+ selector:
335
+ app: memento-server
336
+ ports:
337
+ - protocol: TCP
338
+ port: 80
339
+ targetPort: 8080
340
+ type: ClusterIP
341
+ ```
342
+
343
+ ### Ingress
344
+ ```yaml
345
+ # k8s/ingress.yaml
346
+ apiVersion: networking.k8s.io/v1
347
+ kind: Ingress
348
+ metadata:
349
+ name: memento-ingress
350
+ namespace: memento
351
+ annotations:
352
+ nginx.ingress.kubernetes.io/rewrite-target: /
353
+ cert-manager.io/cluster-issuer: "letsencrypt-prod"
354
+ spec:
355
+ tls:
356
+ - hosts:
357
+ - memento.example.com
358
+ secretName: memento-tls
359
+ rules:
360
+ - host: memento.example.com
361
+ http:
362
+ paths:
363
+ - path: /
364
+ pathType: Prefix
365
+ backend:
366
+ service:
367
+ name: memento-service
368
+ port:
369
+ number: 80
370
+ ```
371
+
372
+ ## 🔧 환경 설정
373
+
374
+ ### 환경 변수
375
+ ```bash
376
+ # .env.development
377
+ NODE_ENV=development
378
+ DB_PATH=./data/memory.db
379
+ LOG_LEVEL=debug
380
+ API_KEY=dev-key-123
381
+
382
+ # .env.production
383
+ NODE_ENV=production
384
+ DATABASE_URL=postgresql://user:pass@localhost:5432/memento
385
+ JWT_SECRET=your-jwt-secret
386
+ LOG_LEVEL=info
387
+ API_KEY=prod-key-456
388
+ ```
389
+
390
+ ### 환경별 설정
391
+ ```typescript
392
+ // src/config/environment.ts
393
+ export interface EnvironmentConfig {
394
+ nodeEnv: string;
395
+ port: number;
396
+ database: {
397
+ type: 'sqlite' | 'postgresql';
398
+ url?: string;
399
+ path?: string;
400
+ };
401
+ auth: {
402
+ apiKey?: string;
403
+ jwtSecret?: string;
404
+ };
405
+ logging: {
406
+ level: string;
407
+ };
408
+ }
409
+
410
+ export function loadConfig(): EnvironmentConfig {
411
+ return {
412
+ nodeEnv: process.env.NODE_ENV || 'development',
413
+ port: parseInt(process.env.PORT || '8080'),
414
+ database: {
415
+ type: process.env.DATABASE_TYPE as 'sqlite' | 'postgresql' || 'sqlite',
416
+ url: process.env.DATABASE_URL,
417
+ path: process.env.DB_PATH
418
+ },
419
+ auth: {
420
+ apiKey: process.env.API_KEY,
421
+ jwtSecret: process.env.JWT_SECRET
422
+ },
423
+ logging: {
424
+ level: process.env.LOG_LEVEL || 'info'
425
+ }
426
+ };
427
+ }
428
+ ```
429
+
430
+ ## 🚀 배포 스크립트
431
+
432
+ ### 빌드 스크립트
433
+ ```bash
434
+ #!/bin/bash
435
+ # scripts/build.sh
436
+
437
+ set -e
438
+
439
+ echo "Building Memento MCP Server..."
440
+
441
+ # Install dependencies
442
+ npm ci
443
+
444
+ # Run tests
445
+ npm run test:ci
446
+
447
+ # Build application
448
+ npm run build
449
+
450
+ # Build Docker image
451
+ docker build -t memento:latest .
452
+
453
+ echo "Build completed successfully!"
454
+ ```
455
+
456
+ ### 배포 스크립트
457
+ ```bash
458
+ #!/bin/bash
459
+ # scripts/deploy.sh
460
+
461
+ set -e
462
+
463
+ ENVIRONMENT=${1:-development}
464
+ VERSION=${2:-latest}
465
+
466
+ echo "Deploying Memento MCP Server to $ENVIRONMENT..."
467
+
468
+ # Build image
469
+ docker build -t memento:$VERSION .
470
+
471
+ # Tag for registry
472
+ docker tag memento:$VERSION registry.example.com/memento:$VERSION
473
+
474
+ # Push to registry
475
+ docker push registry.example.com/memento:$VERSION
476
+
477
+ # Deploy to Kubernetes
478
+ kubectl apply -f k8s/namespace.yaml
479
+ kubectl apply -f k8s/configmap.yaml
480
+ kubectl apply -f k8s/secret.yaml
481
+ kubectl apply -f k8s/deployment.yaml
482
+ kubectl apply -f k8s/service.yaml
483
+ kubectl apply -f k8s/ingress.yaml
484
+
485
+ # Wait for deployment
486
+ kubectl rollout status deployment/memento-server -n memento
487
+
488
+ echo "Deployment completed successfully!"
489
+ ```
490
+
491
+ ## 📊 모니터링 및 로깅
492
+
493
+ ### Prometheus 메트릭
494
+ ```typescript
495
+ // src/monitoring/metrics.ts
496
+ import { register, Counter, Histogram, Gauge } from 'prom-client';
497
+
498
+ export const memoryCounter = new Counter({
499
+ name: 'memento_memories_total',
500
+ help: 'Total number of memories created',
501
+ labelNames: ['type']
502
+ });
503
+
504
+ export const searchDuration = new Histogram({
505
+ name: 'memento_search_duration_seconds',
506
+ help: 'Duration of search operations',
507
+ buckets: [0.1, 0.5, 1, 2, 5]
508
+ });
509
+
510
+ export const activeConnections = new Gauge({
511
+ name: 'memento_active_connections',
512
+ help: 'Number of active MCP connections'
513
+ });
514
+ ```
515
+
516
+ ### 로깅 설정
517
+ ```typescript
518
+ // src/logging/logger.ts
519
+ import winston from 'winston';
520
+
521
+ export const logger = winston.createLogger({
522
+ level: process.env.LOG_LEVEL || 'info',
523
+ format: winston.format.combine(
524
+ winston.format.timestamp(),
525
+ winston.format.errors({ stack: true }),
526
+ winston.format.json()
527
+ ),
528
+ transports: [
529
+ new winston.transports.Console(),
530
+ new winston.transports.File({ filename: 'logs/error.log', level: 'error' }),
531
+ new winston.transports.File({ filename: 'logs/combined.log' })
532
+ ]
533
+ });
534
+ ```
535
+
536
+ ## 🔒 보안 설정
537
+
538
+ ### Docker 보안
539
+ ```dockerfile
540
+ # 보안 강화된 Dockerfile
541
+ FROM node:20-alpine AS production
542
+
543
+ # 보안 업데이트
544
+ RUN apk update && apk upgrade
545
+
546
+ # 비루트 사용자 생성
547
+ RUN addgroup -g 1001 -S nodejs
548
+ RUN adduser -S memento -u 1001
549
+
550
+ # 필요한 권한만 부여
551
+ RUN chown -R memento:nodejs /app
552
+ USER memento
553
+
554
+ # 읽기 전용 파일시스템
555
+ RUN chmod -R 755 /app
556
+ ```
557
+
558
+ ### Kubernetes 보안
559
+ ```yaml
560
+ # SecurityContext 설정
561
+ securityContext:
562
+ runAsNonRoot: true
563
+ runAsUser: 1001
564
+ fsGroup: 1001
565
+ capabilities:
566
+ drop:
567
+ - ALL
568
+ readOnlyRootFilesystem: true
569
+ allowPrivilegeEscalation: false
570
+ ```
571
+
572
+ ## 📋 배포 체크리스트
573
+
574
+ ### M1 (개인용)
575
+ - [ ] SQLite 데이터베이스 설정
576
+ - [ ] 로컬 실행 스크립트
577
+ - [ ] 기본 로깅 설정
578
+ - [ ] 헬스 체크 엔드포인트
579
+
580
+ ### M2 (팀)
581
+ - [ ] Docker 컨테이너화
582
+ - [ ] API Key 인증
583
+ - [ ] Redis 캐싱
584
+ - [ ] 로그 수집
585
+
586
+ ### M3 (조직)
587
+ - [ ] PostgreSQL 마이그레이션
588
+ - [ ] JWT 인증
589
+ - [ ] Docker Compose 구성
590
+ - [ ] 모니터링 설정
591
+
592
+ ### M4 (엔터프라이즈)
593
+ - [ ] Kubernetes 배포
594
+ - [ ] 고가용성 구성
595
+ - [ ] 보안 강화
596
+ - [ ] 자동 스케일링