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.
- package/.cursor/rules/cache-management.mdc +171 -0
- package/.cursor/rules/database-schema.mdc +344 -0
- package/.cursor/rules/deployment.mdc +596 -0
- package/.cursor/rules/error-logging.mdc +298 -0
- package/.cursor/rules/forgetting-algorithms.mdc +426 -0
- package/.cursor/rules/http-server.mdc +432 -0
- package/.cursor/rules/hybrid-search.mdc +424 -0
- package/.cursor/rules/implementation.mdc +369 -0
- package/.cursor/rules/lightweight-embedding.mdc +178 -0
- package/.cursor/rules/mcp-client-development.mdc +0 -0
- package/.cursor/rules/mcp-server-development.mdc +0 -0
- package/.cursor/rules/mcp-tools-architecture.mdc +205 -0
- package/.cursor/rules/memento-memory-rule.mdc +8 -0
- package/.cursor/rules/memento-project-overview.mdc +0 -0
- package/.cursor/rules/memory-algorithms.mdc +502 -0
- package/.cursor/rules/monitoring.mdc +622 -0
- package/.cursor/rules/performance-alerts.mdc +537 -0
- package/.cursor/rules/performance-monitoring.mdc +345 -0
- package/.cursor/rules/performance-optimization.mdc +563 -0
- package/.cursor/rules/project-structure.mdc +310 -0
- package/.cursor/rules/testing.mdc +473 -0
- package/.dockerignore +15 -0
- package/.eslintrc.json +34 -0
- package/.github/ISSUE_TEMPLATE/bug_report.md +51 -0
- package/.github/ISSUE_TEMPLATE/feature_request.md +45 -0
- package/.github/ISSUE_TEMPLATE/question.md +31 -0
- package/.github/PULL_REQUEST_TEMPLATE.md +97 -0
- package/AGENTS.md +28 -0
- package/CHANGELOG.md +416 -0
- package/CODE_OF_CONDUCT.md +62 -0
- package/CONTRIBUTING.md +165 -0
- package/DOCKER_SETUP_GUIDE.md +84 -0
- package/Dockerfile +90 -0
- package/INSTALL.en.md +303 -0
- package/INSTALL.md +303 -0
- package/README.en.md +330 -0
- package/README.md +427 -0
- package/backup/legacy-removal-20250930-201816/http-server-legacy.ts +1068 -0
- package/backup/legacy-removal-20250930-201816/rollback-to-legacy.ps1 +46 -0
- package/backup/legacy-removal-20250930-201816/rollback-to-legacy.sh +48 -0
- package/dist/algorithms/forgetting-algorithm.d.ts +90 -0
- package/dist/algorithms/forgetting-algorithm.d.ts.map +1 -0
- package/dist/algorithms/forgetting-algorithm.js +160 -0
- package/dist/algorithms/forgetting-algorithm.js.map +1 -0
- package/dist/algorithms/hybrid-search-engine.d.ts +108 -0
- package/dist/algorithms/hybrid-search-engine.d.ts.map +1 -0
- package/dist/algorithms/hybrid-search-engine.js +384 -0
- package/dist/algorithms/hybrid-search-engine.js.map +1 -0
- package/dist/algorithms/search-engine.d.ts +64 -0
- package/dist/algorithms/search-engine.d.ts.map +1 -0
- package/dist/algorithms/search-engine.js +304 -0
- package/dist/algorithms/search-engine.js.map +1 -0
- package/dist/algorithms/search-ranking.d.ts +145 -0
- package/dist/algorithms/search-ranking.d.ts.map +1 -0
- package/dist/algorithms/search-ranking.js +311 -0
- package/dist/algorithms/search-ranking.js.map +1 -0
- package/dist/algorithms/spaced-repetition.d.ts +83 -0
- package/dist/algorithms/spaced-repetition.d.ts.map +1 -0
- package/dist/algorithms/spaced-repetition.js +153 -0
- package/dist/algorithms/spaced-repetition.js.map +1 -0
- package/dist/algorithms/vector-search-engine.d.ts +96 -0
- package/dist/algorithms/vector-search-engine.d.ts.map +1 -0
- package/dist/algorithms/vector-search-engine.js +410 -0
- package/dist/algorithms/vector-search-engine.js.map +1 -0
- package/dist/client/index.d.ts +55 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +179 -0
- package/dist/client/index.js.map +1 -0
- package/dist/config/index.d.ts +20 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +87 -0
- package/dist/config/index.js.map +1 -0
- package/dist/database/init.d.ts +7 -0
- package/dist/database/init.d.ts.map +1 -0
- package/dist/database/init.js +117 -0
- package/dist/database/init.js.map +1 -0
- package/dist/database/migrate.d.ts +6 -0
- package/dist/database/migrate.d.ts.map +1 -0
- package/dist/database/migrate.js +84 -0
- package/dist/database/migrate.js.map +1 -0
- package/dist/database/schema.sql +159 -0
- package/dist/npm-client/context-injector.d.ts +106 -0
- package/dist/npm-client/context-injector.d.ts.map +1 -0
- package/dist/npm-client/context-injector.js +296 -0
- package/dist/npm-client/context-injector.js.map +1 -0
- package/dist/npm-client/index.d.ts +42 -0
- package/dist/npm-client/index.d.ts.map +1 -0
- package/dist/npm-client/index.js +43 -0
- package/dist/npm-client/index.js.map +1 -0
- package/dist/npm-client/memento-client.d.ts +114 -0
- package/dist/npm-client/memento-client.d.ts.map +1 -0
- package/dist/npm-client/memento-client.js +391 -0
- package/dist/npm-client/memento-client.js.map +1 -0
- package/dist/npm-client/memory-manager.d.ts +137 -0
- package/dist/npm-client/memory-manager.d.ts.map +1 -0
- package/dist/npm-client/memory-manager.js +341 -0
- package/dist/npm-client/memory-manager.js.map +1 -0
- package/dist/npm-client/types.d.ts +216 -0
- package/dist/npm-client/types.d.ts.map +1 -0
- package/dist/npm-client/types.js +44 -0
- package/dist/npm-client/types.js.map +1 -0
- package/dist/npm-client/utils.d.ts +91 -0
- package/dist/npm-client/utils.d.ts.map +1 -0
- package/dist/npm-client/utils.js +351 -0
- package/dist/npm-client/utils.js.map +1 -0
- package/dist/scripts/copy-assets.d.ts +3 -0
- package/dist/scripts/copy-assets.d.ts.map +1 -0
- package/dist/scripts/copy-assets.js +31 -0
- package/dist/scripts/copy-assets.js.map +1 -0
- package/dist/server/http-server.d.ts +28 -0
- package/dist/server/http-server.d.ts.map +1 -0
- package/dist/server/http-server.js +930 -0
- package/dist/server/http-server.js.map +1 -0
- package/dist/server/index-backup.d.ts +5 -0
- package/dist/server/index-backup.d.ts.map +1 -0
- package/dist/server/index-backup.js +793 -0
- package/dist/server/index-backup.js.map +1 -0
- package/dist/server/index-refactored.d.ts +6 -0
- package/dist/server/index-refactored.d.ts.map +1 -0
- package/dist/server/index-refactored.js +206 -0
- package/dist/server/index-refactored.js.map +1 -0
- package/dist/server/index.d.ts +12 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +301 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/simple-mcp-server.d.ts +8 -0
- package/dist/server/simple-mcp-server.d.ts.map +1 -0
- package/dist/server/simple-mcp-server.js +152 -0
- package/dist/server/simple-mcp-server.js.map +1 -0
- package/dist/services/async-optimizer.d.ts +136 -0
- package/dist/services/async-optimizer.d.ts.map +1 -0
- package/dist/services/async-optimizer.js +406 -0
- package/dist/services/async-optimizer.js.map +1 -0
- package/dist/services/batch-scheduler.d.ts +156 -0
- package/dist/services/batch-scheduler.d.ts.map +1 -0
- package/dist/services/batch-scheduler.js +612 -0
- package/dist/services/batch-scheduler.js.map +1 -0
- package/dist/services/cache-service.d.ts +168 -0
- package/dist/services/cache-service.d.ts.map +1 -0
- package/dist/services/cache-service.js +360 -0
- package/dist/services/cache-service.js.map +1 -0
- package/dist/services/database-optimizer.d.ts +110 -0
- package/dist/services/database-optimizer.d.ts.map +1 -0
- package/dist/services/database-optimizer.js +369 -0
- package/dist/services/database-optimizer.js.map +1 -0
- package/dist/services/embedding-provider-factory.d.ts +62 -0
- package/dist/services/embedding-provider-factory.d.ts.map +1 -0
- package/dist/services/embedding-provider-factory.js +152 -0
- package/dist/services/embedding-provider-factory.js.map +1 -0
- package/dist/services/embedding-service.d.ts +95 -0
- package/dist/services/embedding-service.d.ts.map +1 -0
- package/dist/services/embedding-service.js +276 -0
- package/dist/services/embedding-service.js.map +1 -0
- package/dist/services/error-logging-service.d.ts +134 -0
- package/dist/services/error-logging-service.d.ts.map +1 -0
- package/dist/services/error-logging-service.js +271 -0
- package/dist/services/error-logging-service.js.map +1 -0
- package/dist/services/forgetting-policy-service.d.ts +94 -0
- package/dist/services/forgetting-policy-service.d.ts.map +1 -0
- package/dist/services/forgetting-policy-service.js +233 -0
- package/dist/services/forgetting-policy-service.js.map +1 -0
- package/dist/services/gemini-embedding-service.d.ts +82 -0
- package/dist/services/gemini-embedding-service.d.ts.map +1 -0
- package/dist/services/gemini-embedding-service.js +232 -0
- package/dist/services/gemini-embedding-service.js.map +1 -0
- package/dist/services/lightweight-embedding-service.d.ts +95 -0
- package/dist/services/lightweight-embedding-service.d.ts.map +1 -0
- package/dist/services/lightweight-embedding-service.js +263 -0
- package/dist/services/lightweight-embedding-service.js.map +1 -0
- package/dist/services/memory-embedding-service.d.ts +69 -0
- package/dist/services/memory-embedding-service.d.ts.map +1 -0
- package/dist/services/memory-embedding-service.js +223 -0
- package/dist/services/memory-embedding-service.js.map +1 -0
- package/dist/services/minilm-embedding-service.d.ts +92 -0
- package/dist/services/minilm-embedding-service.d.ts.map +1 -0
- package/dist/services/minilm-embedding-service.js +216 -0
- package/dist/services/minilm-embedding-service.js.map +1 -0
- package/dist/services/performance-alert-service.d.ts +142 -0
- package/dist/services/performance-alert-service.d.ts.map +1 -0
- package/dist/services/performance-alert-service.js +366 -0
- package/dist/services/performance-alert-service.js.map +1 -0
- package/dist/services/performance-monitor.d.ts +144 -0
- package/dist/services/performance-monitor.d.ts.map +1 -0
- package/dist/services/performance-monitor.js +416 -0
- package/dist/services/performance-monitor.js.map +1 -0
- package/dist/services/performance-monitoring-integration.d.ts +77 -0
- package/dist/services/performance-monitoring-integration.d.ts.map +1 -0
- package/dist/services/performance-monitoring-integration.js +177 -0
- package/dist/services/performance-monitoring-integration.js.map +1 -0
- package/dist/services/unified-embedding-service.d.ts +75 -0
- package/dist/services/unified-embedding-service.d.ts.map +1 -0
- package/dist/services/unified-embedding-service.js +211 -0
- package/dist/services/unified-embedding-service.js.map +1 -0
- package/dist/test/debug-http-v2.d.ts +5 -0
- package/dist/test/debug-http-v2.d.ts.map +1 -0
- package/dist/test/debug-http-v2.js +28 -0
- package/dist/test/debug-http-v2.js.map +1 -0
- package/dist/test/performance-benchmark.d.ts +57 -0
- package/dist/test/performance-benchmark.d.ts.map +1 -0
- package/dist/test/performance-benchmark.js +427 -0
- package/dist/test/performance-benchmark.js.map +1 -0
- package/dist/test/test-alerts-direct.d.ts +7 -0
- package/dist/test/test-alerts-direct.d.ts.map +1 -0
- package/dist/test/test-alerts-direct.js +101 -0
- package/dist/test/test-alerts-direct.js.map +1 -0
- package/dist/test/test-batch-scheduler.d.ts +2 -0
- package/dist/test/test-batch-scheduler.d.ts.map +1 -0
- package/dist/test/test-batch-scheduler.js +156 -0
- package/dist/test/test-batch-scheduler.js.map +1 -0
- package/dist/test/test-client.d.ts +5 -0
- package/dist/test/test-client.d.ts.map +1 -0
- package/dist/test/test-client.js +86 -0
- package/dist/test/test-client.js.map +1 -0
- package/dist/test/test-embedding.d.ts +6 -0
- package/dist/test/test-embedding.d.ts.map +1 -0
- package/dist/test/test-embedding.js +142 -0
- package/dist/test/test-embedding.js.map +1 -0
- package/dist/test/test-error-logging.d.ts +7 -0
- package/dist/test/test-error-logging.d.ts.map +1 -0
- package/dist/test/test-error-logging.js +105 -0
- package/dist/test/test-error-logging.js.map +1 -0
- package/dist/test/test-forgetting.d.ts +6 -0
- package/dist/test/test-forgetting.d.ts.map +1 -0
- package/dist/test/test-forgetting.js +154 -0
- package/dist/test/test-forgetting.js.map +1 -0
- package/dist/test/test-gemini-embedding.d.ts +7 -0
- package/dist/test/test-gemini-embedding.d.ts.map +1 -0
- package/dist/test/test-gemini-embedding.js +134 -0
- package/dist/test/test-gemini-embedding.js.map +1 -0
- package/dist/test/test-http-server-v2-simple.d.ts +6 -0
- package/dist/test/test-http-server-v2-simple.d.ts.map +1 -0
- package/dist/test/test-http-server-v2-simple.js +131 -0
- package/dist/test/test-http-server-v2-simple.js.map +1 -0
- package/dist/test/test-http-server-v2.d.ts +7 -0
- package/dist/test/test-http-server-v2.d.ts.map +1 -0
- package/dist/test/test-http-server-v2.js +529 -0
- package/dist/test/test-http-server-v2.js.map +1 -0
- package/dist/test/test-lightweight-embedding.d.ts +6 -0
- package/dist/test/test-lightweight-embedding.d.ts.map +1 -0
- package/dist/test/test-lightweight-embedding.js +189 -0
- package/dist/test/test-lightweight-embedding.js.map +1 -0
- package/dist/test/test-m1-completion.d.ts +7 -0
- package/dist/test/test-m1-completion.d.ts.map +1 -0
- package/dist/test/test-m1-completion.js +124 -0
- package/dist/test/test-m1-completion.js.map +1 -0
- package/dist/test/test-memory-injection-prompt.d.ts +2 -0
- package/dist/test/test-memory-injection-prompt.d.ts.map +1 -0
- package/dist/test/test-memory-injection-prompt.js +299 -0
- package/dist/test/test-memory-injection-prompt.js.map +1 -0
- package/dist/test/test-performance-alerts.d.ts +7 -0
- package/dist/test/test-performance-alerts.d.ts.map +1 -0
- package/dist/test/test-performance-alerts.js +109 -0
- package/dist/test/test-performance-alerts.js.map +1 -0
- package/dist/test/test-performance-monitor.d.ts +2 -0
- package/dist/test/test-performance-monitor.d.ts.map +1 -0
- package/dist/test/test-performance-monitor.js +182 -0
- package/dist/test/test-performance-monitor.js.map +1 -0
- package/dist/test/test-performance-monitoring.d.ts +6 -0
- package/dist/test/test-performance-monitoring.d.ts.map +1 -0
- package/dist/test/test-performance-monitoring.js +156 -0
- package/dist/test/test-performance-monitoring.js.map +1 -0
- package/dist/test/test-search.d.ts +5 -0
- package/dist/test/test-search.d.ts.map +1 -0
- package/dist/test/test-search.js +141 -0
- package/dist/test/test-search.js.map +1 -0
- package/dist/test/test-simple-alerts.d.ts +6 -0
- package/dist/test/test-simple-alerts.d.ts.map +1 -0
- package/dist/test/test-simple-alerts.js +106 -0
- package/dist/test/test-simple-alerts.js.map +1 -0
- package/dist/test/test-vector-search-engine.d.ts +2 -0
- package/dist/test/test-vector-search-engine.d.ts.map +1 -0
- package/dist/test/test-vector-search-engine.js +225 -0
- package/dist/test/test-vector-search-engine.js.map +1 -0
- package/dist/tools/base-tool.d.ts +64 -0
- package/dist/tools/base-tool.d.ts.map +1 -0
- package/dist/tools/base-tool.js +158 -0
- package/dist/tools/base-tool.js.map +1 -0
- package/dist/tools/cleanup-memory-tool.d.ts +10 -0
- package/dist/tools/cleanup-memory-tool.d.ts.map +1 -0
- package/dist/tools/cleanup-memory-tool.js +66 -0
- package/dist/tools/cleanup-memory-tool.js.map +1 -0
- package/dist/tools/database-optimize-tool.d.ts +10 -0
- package/dist/tools/database-optimize-tool.d.ts.map +1 -0
- package/dist/tools/database-optimize-tool.js +64 -0
- package/dist/tools/database-optimize-tool.js.map +1 -0
- package/dist/tools/error-stats.d.ts +93 -0
- package/dist/tools/error-stats.d.ts.map +1 -0
- package/dist/tools/error-stats.js +115 -0
- package/dist/tools/error-stats.js.map +1 -0
- package/dist/tools/forget-tool.d.ts +63 -0
- package/dist/tools/forget-tool.d.ts.map +1 -0
- package/dist/tools/forget-tool.js +340 -0
- package/dist/tools/forget-tool.js.map +1 -0
- package/dist/tools/forgetting-stats-tool.d.ts +10 -0
- package/dist/tools/forgetting-stats-tool.d.ts.map +1 -0
- package/dist/tools/forgetting-stats-tool.js +37 -0
- package/dist/tools/forgetting-stats-tool.js.map +1 -0
- package/dist/tools/index.d.ts +33 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +55 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/memory-injection-prompt.d.ts +31 -0
- package/dist/tools/memory-injection-prompt.d.ts.map +1 -0
- package/dist/tools/memory-injection-prompt.js +203 -0
- package/dist/tools/memory-injection-prompt.js.map +1 -0
- package/dist/tools/performance-alerts.d.ts +127 -0
- package/dist/tools/performance-alerts.d.ts.map +1 -0
- package/dist/tools/performance-alerts.js +208 -0
- package/dist/tools/performance-alerts.js.map +1 -0
- package/dist/tools/performance-stats-tool.d.ts +10 -0
- package/dist/tools/performance-stats-tool.d.ts.map +1 -0
- package/dist/tools/performance-stats-tool.js +38 -0
- package/dist/tools/performance-stats-tool.js.map +1 -0
- package/dist/tools/pin-tool.d.ts +39 -0
- package/dist/tools/pin-tool.d.ts.map +1 -0
- package/dist/tools/pin-tool.js +211 -0
- package/dist/tools/pin-tool.js.map +1 -0
- package/dist/tools/recall-tool.d.ts +27 -0
- package/dist/tools/recall-tool.d.ts.map +1 -0
- package/dist/tools/recall-tool.js +335 -0
- package/dist/tools/recall-tool.js.map +1 -0
- package/dist/tools/remember-tool.d.ts +10 -0
- package/dist/tools/remember-tool.d.ts.map +1 -0
- package/dist/tools/remember-tool.js +101 -0
- package/dist/tools/remember-tool.js.map +1 -0
- package/dist/tools/resolve-error.d.ts +54 -0
- package/dist/tools/resolve-error.d.ts.map +1 -0
- package/dist/tools/resolve-error.js +63 -0
- package/dist/tools/resolve-error.js.map +1 -0
- package/dist/tools/tool-registry.d.ts +134 -0
- package/dist/tools/tool-registry.d.ts.map +1 -0
- package/dist/tools/tool-registry.js +337 -0
- package/dist/tools/tool-registry.js.map +1 -0
- package/dist/tools/types.d.ts +56 -0
- package/dist/tools/types.d.ts.map +1 -0
- package/dist/tools/types.js +23 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/tools/unpin-tool.d.ts +43 -0
- package/dist/tools/unpin-tool.d.ts.map +1 -0
- package/dist/tools/unpin-tool.js +233 -0
- package/dist/tools/unpin-tool.js.map +1 -0
- package/dist/types/embedding.types.d.ts +65 -0
- package/dist/types/embedding.types.d.ts.map +1 -0
- package/dist/types/embedding.types.js +6 -0
- package/dist/types/embedding.types.js.map +1 -0
- package/dist/types/index.d.ts +103 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +5 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/database.d.ts +62 -0
- package/dist/utils/database.d.ts.map +1 -0
- package/dist/utils/database.js +399 -0
- package/dist/utils/database.js.map +1 -0
- package/dist/utils/stopwords.d.ts +18 -0
- package/dist/utils/stopwords.d.ts.map +1 -0
- package/dist/utils/stopwords.js +117 -0
- package/dist/utils/stopwords.js.map +1 -0
- package/docker-compose.dev.yml +50 -0
- package/docker-compose.prod.yml +77 -0
- package/docker-compose.yml +43 -0
- package/docs/en/Memento-Goals.md +217 -0
- package/docs/en/Memento-M1-DetailSpecs.md +130 -0
- package/docs/en/Memento-Milestones.md +135 -0
- package/docs/en/Search-Ranking-Memory-Decay-Formulas.md +177 -0
- package/docs/en/api-reference.md +658 -0
- package/docs/en/architecture.md +1302 -0
- package/docs/en/developer-guide.md +1005 -0
- package/docs/en/user-manual.md +595 -0
- package/docs/ko/Memento-Goals.md +217 -0
- package/docs/ko/Memento-M1-DetailSpecs.md +130 -0
- package/docs/ko/Memento-Milestones.md +134 -0
- package/docs/ko/Search-Ranking-Memory-Decay-Formulas.md +177 -0
- package/docs/ko/api-reference.md +658 -0
- package/docs/ko/architecture.md +1302 -0
- package/docs/ko/developer-guide.md +1006 -0
- package/docs/ko/embedding-api-reference.md +122 -0
- package/docs/ko/embedding-configuration.md +62 -0
- package/docs/ko/embedding-performance-benchmark.md +62 -0
- package/docs/ko/embedding-service-guide.md +314 -0
- package/docs/ko/user-manual.md +595 -0
- package/env.example +49 -0
- package/install.sh +191 -0
- package/mcp-http-client.js +218 -0
- package/mcp.json +0 -0
- package/package.json +125 -0
- package/packages/mcp-client/docs/API-REFERENCE.md +560 -0
- package/packages/mcp-client/docs/BEST-PRACTICES.md +564 -0
- package/packages/mcp-client/docs/MIGRATION-GUIDE.md +344 -0
- package/packages/mcp-client/docs/PERFORMANCE-GUIDE.md +476 -0
- package/packages/mcp-client/docs/TROUBLESHOOTING.md +564 -0
- package/packages/mcp-client/package-lock.json +907 -0
- package/packages/mcp-client/package.json +58 -0
- package/packages/mcp-client/performance-optimizer.js +428 -0
- package/packages/mcp-client/test-basic.js +65 -0
- package/packages/mcp-client/test-integration.js +366 -0
- package/scripts/auto-setup.js +234 -0
- package/scripts/backup-daily.bat +28 -0
- package/scripts/backup-embeddings.js +108 -0
- package/scripts/check-db-integrity.js +93 -0
- package/scripts/debug-embeddings.js +184 -0
- package/scripts/direct-sql-migration.sql +36 -0
- package/scripts/docker-migration.sh +105 -0
- package/scripts/fix-migration.js +93 -0
- package/scripts/fix-vector-dimensions.js +206 -0
- package/scripts/migrate-embedding-data.js +307 -0
- package/scripts/regenerate-embeddings.js +144 -0
- package/scripts/restore-legacy.ps1 +60 -0
- package/scripts/restore-legacy.sh +62 -0
- package/scripts/run-migration.js +122 -0
- package/scripts/safe-migration.js +150 -0
- package/scripts/simple-migrate.js +41 -0
- package/scripts/simple-update.js +123 -0
- package/scripts/start-container.sh +10 -0
- package/src/algorithms/forgetting-algorithm.spec.ts +538 -0
- package/src/algorithms/forgetting-algorithm.ts +243 -0
- package/src/algorithms/hybrid-search-engine.spec.ts +484 -0
- package/src/algorithms/hybrid-search-engine.ts +489 -0
- package/src/algorithms/search-engine.spec.ts +429 -0
- package/src/algorithms/search-engine.ts +392 -0
- package/src/algorithms/search-ranking.spec.ts +293 -0
- package/src/algorithms/search-ranking.ts +407 -0
- package/src/algorithms/spaced-repetition.spec.ts +510 -0
- package/src/algorithms/spaced-repetition.ts +238 -0
- package/src/algorithms/vector-search-engine.ts +505 -0
- package/src/client/index.spec.ts +427 -0
- package/src/client/index.ts +222 -0
- package/src/config/index.spec.ts +339 -0
- package/src/config/index.ts +106 -0
- package/src/database/init.spec.ts +239 -0
- package/src/database/init.ts +130 -0
- package/src/database/migrate.spec.ts +293 -0
- package/src/database/migrate.ts +94 -0
- package/src/database/migrations/001_add_embedding_metadata.sql +29 -0
- package/src/database/schema.sql +159 -0
- package/src/npm-client/context-injector.spec.ts +335 -0
- package/src/npm-client/context-injector.ts +412 -0
- package/src/npm-client/index.spec.ts +108 -0
- package/src/npm-client/index.ts +96 -0
- package/src/npm-client/memento-client.spec.ts +549 -0
- package/src/npm-client/memento-client.ts +501 -0
- package/src/npm-client/memory-manager.spec.ts +374 -0
- package/src/npm-client/memory-manager.ts +414 -0
- package/src/npm-client/types.spec.ts +427 -0
- package/src/npm-client/types.ts +296 -0
- package/src/npm-client/utils.spec.ts +355 -0
- package/src/npm-client/utils.ts +423 -0
- package/src/scripts/copy-assets.js +37 -0
- package/src/server/http-server.spec.ts +648 -0
- package/src/server/http-server.ts +1030 -0
- package/src/server/index-backup.ts +875 -0
- package/src/server/index-refactored.ts +237 -0
- package/src/server/index.spec.ts +281 -0
- package/src/server/index.ts +347 -0
- package/src/server/simple-mcp-server.spec.ts +207 -0
- package/src/server/simple-mcp-server.ts +173 -0
- package/src/services/async-optimizer.spec.ts +569 -0
- package/src/services/async-optimizer.ts +484 -0
- package/src/services/batch-scheduler.ts +759 -0
- package/src/services/cache-service.spec.ts +372 -0
- package/src/services/cache-service.ts +434 -0
- package/src/services/database-optimizer.spec.ts +344 -0
- package/src/services/database-optimizer.ts +450 -0
- package/src/services/embedding-provider-factory.ts +173 -0
- package/src/services/embedding-service.spec.ts +342 -0
- package/src/services/embedding-service.ts +333 -0
- package/src/services/error-logging-service.spec.ts +416 -0
- package/src/services/error-logging-service.ts +383 -0
- package/src/services/forgetting-policy-service.spec.ts +140 -0
- package/src/services/forgetting-policy-service.ts +334 -0
- package/src/services/gemini-embedding-service.spec.ts +463 -0
- package/src/services/gemini-embedding-service.ts +283 -0
- package/src/services/lightweight-embedding-service.spec.ts +458 -0
- package/src/services/lightweight-embedding-service.ts +324 -0
- package/src/services/memory-embedding-service.spec.ts +417 -0
- package/src/services/memory-embedding-service.ts +289 -0
- package/src/services/minilm-embedding-service.spec.ts +104 -0
- package/src/services/minilm-embedding-service.ts +262 -0
- package/src/services/performance-alert-service.spec.ts +517 -0
- package/src/services/performance-alert-service.ts +477 -0
- package/src/services/performance-monitor.spec.ts +401 -0
- package/src/services/performance-monitor.ts +532 -0
- package/src/services/performance-monitoring-integration.spec.ts +478 -0
- package/src/services/performance-monitoring-integration.ts.bak +276 -0
- package/src/services/unified-embedding-service.spec.ts +224 -0
- package/src/services/unified-embedding-service.ts +255 -0
- package/src/test/debug-http-v2.ts +30 -0
- package/src/test/embedding-integration-test.spec.ts +295 -0
- package/src/test/embedding-integration-test.ts +295 -0
- package/src/test/embedding-performance-benchmark.spec.ts +354 -0
- package/src/test/embedding-performance-benchmark.ts +312 -0
- package/src/test/performance-benchmark.ts +565 -0
- package/src/test/test-alerts-direct.ts +136 -0
- package/src/test/test-batch-scheduler-simple.spec.ts +122 -0
- package/src/test/test-batch-scheduler.spec.ts +453 -0
- package/src/test/test-batch-scheduler.ts +182 -0
- package/src/test/test-client.ts +97 -0
- package/src/test/test-embedding.ts +153 -0
- package/src/test/test-error-handling.spec.ts +575 -0
- package/src/test/test-error-logging.ts +117 -0
- package/src/test/test-forgetting.ts +162 -0
- package/src/test/test-gemini-embedding.ts +159 -0
- package/src/test/test-http-server-v2-simple.ts +147 -0
- package/src/test/test-http-server-v2.ts +586 -0
- package/src/test/test-hybrid-search-engine.spec.ts +521 -0
- package/src/test/test-integration-fixed.spec.ts +612 -0
- package/src/test/test-integration.spec.ts +463 -0
- package/src/test/test-lightweight-embedding.ts +208 -0
- package/src/test/test-m1-completion.spec.ts +614 -0
- package/src/test/test-m1-completion.ts +141 -0
- package/src/test/test-m1-integration.spec.ts +514 -0
- package/src/test/test-memory-injection-prompt.spec.ts +650 -0
- package/src/test/test-memory-injection-prompt.ts +391 -0
- package/src/test/test-performance-alerts.ts +125 -0
- package/src/test/test-performance-monitor-updates.spec.ts +490 -0
- package/src/test/test-performance-monitor.spec.ts +284 -0
- package/src/test/test-performance-monitor.ts +228 -0
- package/src/test/test-performance-monitoring.ts +171 -0
- package/src/test/test-search.ts +151 -0
- package/src/test/test-simple-alerts.ts +136 -0
- package/src/test/test-vector-search-engine.spec.ts +408 -0
- package/src/test/test-vector-search-engine.ts +303 -0
- package/src/tools/base-tool.ts +189 -0
- package/src/tools/cleanup-memory-tool.ts +77 -0
- package/src/tools/database-optimize-tool.ts +79 -0
- package/src/tools/error-stats.ts +119 -0
- package/src/tools/forget-tool.spec.ts +613 -0
- package/src/tools/forget-tool.ts +454 -0
- package/src/tools/forgetting-stats-tool.ts +47 -0
- package/src/tools/index.ts +71 -0
- package/src/tools/memory-injection-prompt.ts +257 -0
- package/src/tools/performance-alerts.ts +226 -0
- package/src/tools/performance-stats-tool.ts +48 -0
- package/src/tools/pin-tool.spec.ts +497 -0
- package/src/tools/pin-tool.ts +277 -0
- package/src/tools/recall-tool.spec.ts +475 -0
- package/src/tools/recall-tool.ts +389 -0
- package/src/tools/remember-tool.spec.ts +469 -0
- package/src/tools/remember-tool.ts +112 -0
- package/src/tools/resolve-error.ts +69 -0
- package/src/tools/tool-registry.ts +417 -0
- package/src/tools/types.ts +63 -0
- package/src/tools/unpin-tool.spec.ts +549 -0
- package/src/tools/unpin-tool.ts +306 -0
- package/src/types/embedding.types.ts +78 -0
- package/src/types/index.spec.ts +420 -0
- package/src/types/index.ts +117 -0
- package/src/utils/database.spec.ts +77 -0
- package/src/utils/database.ts +458 -0
- package/src/utils/stopwords.ts +128 -0
- package/start-docker-setup.bat +38 -0
- package/static/logo.png +0 -0
- package/static/memento_logo.svg +2 -0
- package/test-docker.js +103 -0
- package/tsconfig.json +46 -0
- package/vitest.config.ts +23 -0
package/CONTRIBUTING.md
ADDED
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
# 기여하기 (Contributing)
|
|
2
|
+
|
|
3
|
+
Memento MCP Server 프로젝트에 기여해주셔서 감사합니다! 이 문서는 프로젝트에 기여하는 방법을 안내합니다.
|
|
4
|
+
|
|
5
|
+
## 🚀 빠른 시작
|
|
6
|
+
|
|
7
|
+
### 1. 저장소 포크
|
|
8
|
+
1. GitHub에서 [memento 저장소](https://github.com/jee1/memento)를 포크합니다.
|
|
9
|
+
2. 포크한 저장소를 로컬에 클론합니다:
|
|
10
|
+
```bash
|
|
11
|
+
git clone https://github.com/your-username/memento.git
|
|
12
|
+
cd memento
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
### 2. 개발 환경 설정
|
|
16
|
+
```bash
|
|
17
|
+
# 의존성 설치
|
|
18
|
+
npm install
|
|
19
|
+
|
|
20
|
+
# 개발 서버 시작
|
|
21
|
+
npm run dev
|
|
22
|
+
|
|
23
|
+
# 테스트 실행
|
|
24
|
+
npm run test
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## 📋 기여 방법
|
|
28
|
+
|
|
29
|
+
### 버그 리포트
|
|
30
|
+
버그를 발견하셨나요? 다음 정보를 포함하여 이슈를 생성해주세요:
|
|
31
|
+
- **버그 설명**: 무엇이 잘못되었는지 명확한 설명
|
|
32
|
+
- **재현 단계**: 버그를 재현하는 단계별 방법
|
|
33
|
+
- **예상 동작**: 어떻게 동작해야 하는지
|
|
34
|
+
- **실제 동작**: 실제로 어떻게 동작하는지
|
|
35
|
+
- **환경 정보**: OS, Node.js 버전, 브라우저 등
|
|
36
|
+
|
|
37
|
+
### 기능 제안
|
|
38
|
+
새로운 기능을 제안하고 싶으신가요? 다음을 포함해주세요:
|
|
39
|
+
- **기능 설명**: 어떤 기능을 원하는지
|
|
40
|
+
- **사용 사례**: 왜 이 기능이 필요한지
|
|
41
|
+
- **구현 아이디어**: 어떻게 구현할 수 있을지 (선택사항)
|
|
42
|
+
|
|
43
|
+
### 코드 기여
|
|
44
|
+
코드로 기여하고 싶으신가요? 다음 단계를 따라주세요:
|
|
45
|
+
|
|
46
|
+
1. **이슈 생성**: 먼저 작업할 내용에 대해 이슈를 생성하세요.
|
|
47
|
+
2. **브랜치 생성**: `feature/기능명` 또는 `fix/버그명` 형식으로 브랜치를 생성하세요.
|
|
48
|
+
3. **코드 작성**: 변경사항을 구현하세요.
|
|
49
|
+
4. **테스트**: 테스트를 작성하고 실행하세요.
|
|
50
|
+
5. **커밋**: [Conventional Commits](https://www.conventionalcommits.org/) 형식을 따라 커밋하세요.
|
|
51
|
+
6. **PR 생성**: Pull Request를 생성하세요.
|
|
52
|
+
|
|
53
|
+
## 🛠️ 개발 가이드라인
|
|
54
|
+
|
|
55
|
+
### 코딩 스타일
|
|
56
|
+
- **언어**: TypeScript (Node.js ≥ 20)
|
|
57
|
+
- **들여쓰기**: 2칸 공백
|
|
58
|
+
- **따옴표**: 단일 따옴표 (`'`)
|
|
59
|
+
- **세미콜론**: 사용
|
|
60
|
+
- **ESLint**: 프로젝트의 ESLint 설정을 따릅니다.
|
|
61
|
+
|
|
62
|
+
### 커밋 메시지
|
|
63
|
+
[Conventional Commits](https://www.conventionalcommits.org/) 형식을 사용합니다:
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
type(scope): description
|
|
67
|
+
|
|
68
|
+
[optional body]
|
|
69
|
+
|
|
70
|
+
[optional footer(s)]
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
**타입 예시:**
|
|
74
|
+
- `feat`: 새로운 기능
|
|
75
|
+
- `fix`: 버그 수정
|
|
76
|
+
- `docs`: 문서 변경
|
|
77
|
+
- `style`: 코드 스타일 변경 (포맷팅, 세미콜론 등)
|
|
78
|
+
- `refactor`: 코드 리팩토링
|
|
79
|
+
- `test`: 테스트 추가/수정
|
|
80
|
+
- `chore`: 빌드 프로세스, 도구 변경
|
|
81
|
+
|
|
82
|
+
**예시:**
|
|
83
|
+
```
|
|
84
|
+
feat(search): 하이브리드 검색 엔진 추가
|
|
85
|
+
fix(memory): 메모리 누수 문제 해결
|
|
86
|
+
docs(readme): 설치 가이드 업데이트
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### 테스트
|
|
90
|
+
- **테스트 프레임워크**: Vitest
|
|
91
|
+
- **단위 테스트**: `*.spec.ts` 파일로 작성
|
|
92
|
+
- **E2E 테스트**: `src/test/` 디렉토리에 작성
|
|
93
|
+
- **테스트 실행**: `npm run test`
|
|
94
|
+
|
|
95
|
+
### 브랜치 전략
|
|
96
|
+
- `main`: 안정적인 릴리스 브랜치
|
|
97
|
+
- `feature/*`: 새로운 기능 개발
|
|
98
|
+
- `fix/*`: 버그 수정
|
|
99
|
+
- `docs/*`: 문서 업데이트
|
|
100
|
+
- `chore/*`: 유지보수 작업
|
|
101
|
+
|
|
102
|
+
## 📁 프로젝트 구조
|
|
103
|
+
|
|
104
|
+
```
|
|
105
|
+
src/
|
|
106
|
+
├── algorithms/ # 검색 및 망각 알고리즘
|
|
107
|
+
├── client/ # MCP 클라이언트
|
|
108
|
+
├── config/ # 설정 관리
|
|
109
|
+
├── database/ # 데이터베이스 스키마 및 마이그레이션
|
|
110
|
+
├── server/ # MCP 서버 엔트리포인트
|
|
111
|
+
├── services/ # 비즈니스 로직 서비스
|
|
112
|
+
├── test/ # E2E 테스트
|
|
113
|
+
├── tools/ # MCP 도구 구현
|
|
114
|
+
├── types/ # 공유 타입 정의
|
|
115
|
+
└── utils/ # 유틸리티 함수
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## 🔍 코드 리뷰 프로세스
|
|
119
|
+
|
|
120
|
+
1. **자동 검사**: CI/CD 파이프라인이 자동으로 실행됩니다.
|
|
121
|
+
2. **리뷰 요청**: 최소 1명의 리뷰어가 승인해야 합니다.
|
|
122
|
+
3. **피드백 반영**: 리뷰어의 피드백을 반영하여 수정합니다.
|
|
123
|
+
4. **병합**: 승인 후 `main` 브랜치에 병합됩니다.
|
|
124
|
+
|
|
125
|
+
## 🐛 버그 수정
|
|
126
|
+
|
|
127
|
+
버그를 수정할 때:
|
|
128
|
+
1. **재현 테스트**: 버그를 재현하는 테스트를 작성합니다.
|
|
129
|
+
2. **수정**: 버그를 수정합니다.
|
|
130
|
+
3. **테스트 통과**: 모든 테스트가 통과하는지 확인합니다.
|
|
131
|
+
4. **문서 업데이트**: 필요시 관련 문서를 업데이트합니다.
|
|
132
|
+
|
|
133
|
+
## ✨ 기능 추가
|
|
134
|
+
|
|
135
|
+
새로운 기능을 추가할 때:
|
|
136
|
+
1. **설계 검토**: 기능 설계에 대해 이슈에서 논의합니다.
|
|
137
|
+
2. **테스트 작성**: 기능에 대한 테스트를 작성합니다.
|
|
138
|
+
3. **구현**: 기능을 구현합니다.
|
|
139
|
+
4. **문서 작성**: API 문서와 사용법을 작성합니다.
|
|
140
|
+
|
|
141
|
+
## 📚 문서화
|
|
142
|
+
|
|
143
|
+
문서를 업데이트할 때:
|
|
144
|
+
- **한국어 우선**: 한국어 문서를 우선으로 작성합니다.
|
|
145
|
+
- **영어 번역**: 필요시 영어 문서도 업데이트합니다.
|
|
146
|
+
- **예시 포함**: 코드 예시와 사용 사례를 포함합니다.
|
|
147
|
+
- **최신 상태 유지**: 코드 변경사항과 동기화합니다.
|
|
148
|
+
|
|
149
|
+
## 🤝 커뮤니티
|
|
150
|
+
|
|
151
|
+
- **이슈**: [GitHub Issues](https://github.com/jee1/memento/issues)
|
|
152
|
+
- **토론**: [GitHub Discussions](https://github.com/jee1/memento/discussions)
|
|
153
|
+
- **문서**: [Wiki](https://github.com/jee1/memento/wiki)
|
|
154
|
+
|
|
155
|
+
## 📄 라이선스
|
|
156
|
+
|
|
157
|
+
이 프로젝트는 MIT 라이선스 하에 배포됩니다. 기여하시는 코드는 동일한 라이선스 하에 배포됩니다.
|
|
158
|
+
|
|
159
|
+
## 🙏 감사
|
|
160
|
+
|
|
161
|
+
모든 기여자분들께 감사드립니다! 여러분의 기여가 Memento를 더 나은 프로젝트로 만들어줍니다.
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
**질문이 있으시면 언제든지 이슈를 생성하거나 토론에 참여해주세요!**
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# 🐳 Memento Docker 설정 가이드
|
|
2
|
+
|
|
3
|
+
## 📋 현재 상태
|
|
4
|
+
- ✅ 도커 설정 완료 (MCP 서버용)
|
|
5
|
+
- ✅ MCP 클라이언트 분리 완료
|
|
6
|
+
- ✅ 데이터 백업 완료 (473개 기억)
|
|
7
|
+
- ✅ mcp.json 설정 업데이트 완료
|
|
8
|
+
|
|
9
|
+
## 🚀 Docker Desktop 시작 후 실행할 명령어
|
|
10
|
+
|
|
11
|
+
### 1단계: Docker Desktop 시작
|
|
12
|
+
- Windows 시작 메뉴에서 "Docker Desktop" 검색 후 실행
|
|
13
|
+
- Docker Desktop이 완전히 시작될 때까지 대기
|
|
14
|
+
|
|
15
|
+
### 2단계: 자동 설정 실행
|
|
16
|
+
```bash
|
|
17
|
+
# 방법 1: 배치 파일 실행 (권장)
|
|
18
|
+
start-docker-setup.bat
|
|
19
|
+
|
|
20
|
+
# 방법 2: 수동 실행
|
|
21
|
+
docker-compose build
|
|
22
|
+
docker-compose up -d
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
**📁 데이터 마운트 방식:**
|
|
26
|
+
- 호스트 `./data` 폴더가 컨테이너 `/app/data`에 직접 마운트됩니다
|
|
27
|
+
- 파일 복사 없이 실시간 동기화됩니다
|
|
28
|
+
- 컨테이너 재시작해도 데이터가 유지됩니다
|
|
29
|
+
|
|
30
|
+
### 3단계: 설정 확인
|
|
31
|
+
```bash
|
|
32
|
+
# 컨테이너 상태 확인
|
|
33
|
+
docker-compose ps
|
|
34
|
+
|
|
35
|
+
# 로그 확인
|
|
36
|
+
docker-compose logs memento-mcp-server
|
|
37
|
+
|
|
38
|
+
# 데이터베이스 확인
|
|
39
|
+
docker exec memento-mcp-server sqlite3 /app/data/memory.db "SELECT COUNT(*) FROM memory_item;"
|
|
40
|
+
|
|
41
|
+
# 서버 접속 테스트
|
|
42
|
+
curl http://localhost:9001/health
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## 🔧 문제 해결
|
|
46
|
+
|
|
47
|
+
### Docker Desktop이 시작되지 않는 경우
|
|
48
|
+
1. Windows 재시작
|
|
49
|
+
2. Docker Desktop 재설치
|
|
50
|
+
3. WSL2 업데이트
|
|
51
|
+
|
|
52
|
+
### 컨테이너가 시작되지 않는 경우
|
|
53
|
+
```bash
|
|
54
|
+
# 로그 확인
|
|
55
|
+
docker-compose logs memento-mcp-server
|
|
56
|
+
|
|
57
|
+
# 컨테이너 재시작
|
|
58
|
+
docker-compose restart memento-mcp-server
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### 데이터가 보이지 않는 경우
|
|
62
|
+
```bash
|
|
63
|
+
# 마운트 확인
|
|
64
|
+
docker inspect memento-mcp-server | grep -A 5 "Mounts"
|
|
65
|
+
|
|
66
|
+
# 데이터 디렉토리 확인
|
|
67
|
+
docker exec memento-mcp-server ls -la /app/data
|
|
68
|
+
|
|
69
|
+
# 호스트 데이터 확인
|
|
70
|
+
dir ".\data"
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## 📊 현재 데이터 상태
|
|
74
|
+
- **총 기억 수**: 473개
|
|
75
|
+
- **일화기억**: 357개
|
|
76
|
+
- **의미기억**: 105개
|
|
77
|
+
- **절차기억**: 7개
|
|
78
|
+
- **작업기억**: 4개
|
|
79
|
+
|
|
80
|
+
## 🎯 완료 후 확인사항
|
|
81
|
+
1. Cursor에서 Memento MCP 서버 연결 확인
|
|
82
|
+
2. 기억 검색 기능 테스트
|
|
83
|
+
3. 새 기억 저장 테스트
|
|
84
|
+
4. 도커 재시작 후 데이터 유지 확인
|
package/Dockerfile
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# Multi-stage build for Memento MCP Server
|
|
2
|
+
FROM node:20-alpine AS builder
|
|
3
|
+
|
|
4
|
+
WORKDIR /app
|
|
5
|
+
|
|
6
|
+
# Copy package files
|
|
7
|
+
COPY package*.json ./
|
|
8
|
+
COPY tsconfig*.json ./
|
|
9
|
+
|
|
10
|
+
# Install all dependencies (including dev dependencies for build) without running scripts
|
|
11
|
+
RUN npm ci --ignore-scripts
|
|
12
|
+
|
|
13
|
+
# Copy source code
|
|
14
|
+
COPY src/ ./src/
|
|
15
|
+
COPY scripts/ ./scripts/
|
|
16
|
+
|
|
17
|
+
# Run postinstall scripts now that source code is available
|
|
18
|
+
RUN npm run postinstall
|
|
19
|
+
|
|
20
|
+
# Build application
|
|
21
|
+
RUN npm run build
|
|
22
|
+
|
|
23
|
+
# Production stage
|
|
24
|
+
FROM node:20-slim AS production
|
|
25
|
+
|
|
26
|
+
# Install SQLite and development tools (FTS5 is included in SQLite)
|
|
27
|
+
# Install dependencies for sqlite-vec compilation
|
|
28
|
+
RUN apt-get update && apt-get install -y \
|
|
29
|
+
python3 \
|
|
30
|
+
make \
|
|
31
|
+
g++ \
|
|
32
|
+
sqlite3 \
|
|
33
|
+
libsqlite3-dev \
|
|
34
|
+
git \
|
|
35
|
+
cmake \
|
|
36
|
+
build-essential \
|
|
37
|
+
wget \
|
|
38
|
+
&& rm -rf /var/lib/apt/lists/*
|
|
39
|
+
|
|
40
|
+
# Set working directory
|
|
41
|
+
WORKDIR /app
|
|
42
|
+
|
|
43
|
+
# Copy package files and scripts, then install dependencies
|
|
44
|
+
COPY package*.json ./
|
|
45
|
+
COPY scripts/ ./scripts/
|
|
46
|
+
RUN npm cache clean --force && npm install --omit=dev
|
|
47
|
+
|
|
48
|
+
# Install sqlite-vec npm package and copy .so files to /usr/lib/ without .so extension
|
|
49
|
+
RUN npm install sqlite-vec --build-from-source && \
|
|
50
|
+
find /app/node_modules -name "*.so" -type f && \
|
|
51
|
+
cp /app/node_modules/sqlite-vec-linux-x64/vec0.so /usr/lib/vec0 && \
|
|
52
|
+
chmod +x /usr/lib/vec0 && \
|
|
53
|
+
ls -la /usr/lib/vec0
|
|
54
|
+
|
|
55
|
+
# Copy built application
|
|
56
|
+
COPY --from=builder /app/dist ./dist
|
|
57
|
+
COPY --from=builder /app/node_modules ./node_modules
|
|
58
|
+
COPY --from=builder /app/package*.json ./
|
|
59
|
+
|
|
60
|
+
# Install only production dependencies (skip scripts since they were already run in builder stage)
|
|
61
|
+
# Rebuild better-sqlite3 for Debian Linux and install sqlite-vec
|
|
62
|
+
RUN npm ci --only=production --ignore-scripts && \
|
|
63
|
+
npm rebuild better-sqlite3 --build-from-source && \
|
|
64
|
+
npm install sqlite-vec --build-from-source && \
|
|
65
|
+
npm install --platform=linux --arch=x64 sharp && \
|
|
66
|
+
npm cache clean --force
|
|
67
|
+
|
|
68
|
+
# Create data directory
|
|
69
|
+
RUN mkdir -p /app/data
|
|
70
|
+
|
|
71
|
+
# Create non-root user
|
|
72
|
+
RUN groupadd -g 1001 nodejs
|
|
73
|
+
RUN useradd -r -u 1001 -g nodejs memento
|
|
74
|
+
|
|
75
|
+
# Change ownership (data directory will be mounted, so we'll set permissions at runtime)
|
|
76
|
+
RUN chown -R memento:nodejs /app
|
|
77
|
+
USER memento
|
|
78
|
+
|
|
79
|
+
# Expose port
|
|
80
|
+
EXPOSE 9001
|
|
81
|
+
|
|
82
|
+
# Health check
|
|
83
|
+
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
|
|
84
|
+
CMD node -e "console.log('Health check passed')" || exit 1
|
|
85
|
+
|
|
86
|
+
# Copy startup script
|
|
87
|
+
COPY --chmod=755 scripts/start-container.sh /app/start-container.sh
|
|
88
|
+
|
|
89
|
+
# Start application
|
|
90
|
+
CMD ["/app/start-container.sh"]
|
package/INSTALL.en.md
ADDED
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
# 🚀 Memento MCP Server Installation Guide
|
|
2
|
+
|
|
3
|
+
<div align="center">
|
|
4
|
+
[🇰🇷 한국어](INSTALL.md) | [🇺🇸 English](INSTALL.en.md)
|
|
5
|
+
</div>
|
|
6
|
+
|
|
7
|
+
Provides various installation methods for the AI Agent Memory Assistant MCP Server.
|
|
8
|
+
|
|
9
|
+
## 📋 Installation Method Selection
|
|
10
|
+
|
|
11
|
+
### 🥇 **1st Priority: One-click Installation (Recommended)**
|
|
12
|
+
```bash
|
|
13
|
+
# Run automatic installation script
|
|
14
|
+
curl -sSL https://raw.githubusercontent.com/jee1/memento/main/install.sh | bash
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
### 🥈 **2nd Priority: npx Method (For Developers)**
|
|
18
|
+
```bash
|
|
19
|
+
# Run immediately (without installation)
|
|
20
|
+
npx memento-mcp-server@latest dev
|
|
21
|
+
|
|
22
|
+
# Auto setup then run
|
|
23
|
+
npx memento-mcp-server@latest setup
|
|
24
|
+
npx memento-mcp-server@latest start
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### 🥉 **3rd Priority: Docker Method (For Production)**
|
|
28
|
+
```bash
|
|
29
|
+
# Development environment
|
|
30
|
+
docker-compose -f docker-compose.dev.yml up -d
|
|
31
|
+
|
|
32
|
+
# Production environment
|
|
33
|
+
docker-compose -f docker-compose.prod.yml up -d
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### 🛠️ **4th Priority: Source Code Method (For Developers)**
|
|
37
|
+
```bash
|
|
38
|
+
# Clone repository
|
|
39
|
+
git clone https://github.com/jee1/memento.git
|
|
40
|
+
cd memento
|
|
41
|
+
|
|
42
|
+
# One-click installation and run
|
|
43
|
+
npm run quick-start
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## 🎯 Recommended Installation Method by User Type
|
|
47
|
+
|
|
48
|
+
### 👨💻 **Developers/Researchers**
|
|
49
|
+
- **npx method** or **source code method** recommended
|
|
50
|
+
- Optimized for rapid prototyping and debugging
|
|
51
|
+
|
|
52
|
+
### 👤 **General Users**
|
|
53
|
+
- **One-click installation** or **Docker method** recommended
|
|
54
|
+
- Simple installation and stable execution
|
|
55
|
+
|
|
56
|
+
### 🏢 **Teams/Organizations**
|
|
57
|
+
- **Docker method** required
|
|
58
|
+
- Standardized deployment and scalability
|
|
59
|
+
|
|
60
|
+
## 📚 Detailed Installation Methods
|
|
61
|
+
|
|
62
|
+
### 1. One-click Installation
|
|
63
|
+
|
|
64
|
+
#### Linux/macOS
|
|
65
|
+
```bash
|
|
66
|
+
curl -sSL https://raw.githubusercontent.com/jee1/memento/main/install.sh | bash
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
#### Windows (PowerShell)
|
|
70
|
+
```powershell
|
|
71
|
+
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/jee1/memento/main/install.sh" -OutFile "install.sh"
|
|
72
|
+
bash install.sh
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### 2. npx Method
|
|
76
|
+
|
|
77
|
+
#### Basic Usage
|
|
78
|
+
```bash
|
|
79
|
+
# Development mode (hot reload)
|
|
80
|
+
npx memento-mcp-server@latest dev
|
|
81
|
+
|
|
82
|
+
# Production mode
|
|
83
|
+
npx memento-mcp-server@latest start
|
|
84
|
+
|
|
85
|
+
# HTTP/WebSocket server
|
|
86
|
+
npx memento-mcp-server@latest dev-http
|
|
87
|
+
|
|
88
|
+
# Auto setup
|
|
89
|
+
npx memento-mcp-server@latest setup
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
#### Global Installation
|
|
93
|
+
```bash
|
|
94
|
+
# Global installation
|
|
95
|
+
npm install -g memento-mcp-server
|
|
96
|
+
|
|
97
|
+
# Usage
|
|
98
|
+
memento-mcp dev
|
|
99
|
+
memento-mcp start
|
|
100
|
+
memento-mcp setup
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### 3. Docker Method
|
|
104
|
+
|
|
105
|
+
#### Development Environment
|
|
106
|
+
```bash
|
|
107
|
+
# Run development Docker Compose
|
|
108
|
+
docker-compose -f docker-compose.dev.yml up -d
|
|
109
|
+
|
|
110
|
+
# Check logs
|
|
111
|
+
docker-compose -f docker-compose.dev.yml logs -f
|
|
112
|
+
|
|
113
|
+
# Stop
|
|
114
|
+
docker-compose -f docker-compose.dev.yml down
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
#### Production Environment
|
|
118
|
+
```bash
|
|
119
|
+
# Run production Docker Compose
|
|
120
|
+
docker-compose -f docker-compose.prod.yml up -d
|
|
121
|
+
|
|
122
|
+
# Check logs
|
|
123
|
+
docker-compose -f docker-compose.prod.yml logs -f
|
|
124
|
+
|
|
125
|
+
# Stop
|
|
126
|
+
docker-compose -f docker-compose.prod.yml down
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
#### Basic Docker Compose
|
|
130
|
+
```bash
|
|
131
|
+
# Basic run (production mode)
|
|
132
|
+
docker-compose up -d
|
|
133
|
+
|
|
134
|
+
# Check logs
|
|
135
|
+
docker-compose logs -f
|
|
136
|
+
|
|
137
|
+
# Stop
|
|
138
|
+
docker-compose down
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### 4. Source Code Method
|
|
142
|
+
|
|
143
|
+
#### Basic Installation
|
|
144
|
+
```bash
|
|
145
|
+
# Clone repository
|
|
146
|
+
git clone https://github.com/jee1/memento.git
|
|
147
|
+
cd memento
|
|
148
|
+
|
|
149
|
+
# Install dependencies
|
|
150
|
+
npm install
|
|
151
|
+
|
|
152
|
+
# Auto setup
|
|
153
|
+
npm run setup
|
|
154
|
+
|
|
155
|
+
# Start development server
|
|
156
|
+
npm run dev
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
#### One-click Installation
|
|
160
|
+
```bash
|
|
161
|
+
# All processes in one command
|
|
162
|
+
npm run quick-start
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
## ⚙️ Environment Configuration
|
|
166
|
+
|
|
167
|
+
### Environment Variable Setup
|
|
168
|
+
```bash
|
|
169
|
+
# Create .env file
|
|
170
|
+
cp env.example .env
|
|
171
|
+
|
|
172
|
+
# Set API keys (optional)
|
|
173
|
+
# OPENAI_API_KEY=your_openai_api_key_here
|
|
174
|
+
# GEMINI_API_KEY=your_gemini_api_key_here
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### Database Initialization
|
|
178
|
+
```bash
|
|
179
|
+
# Initialize SQLite database
|
|
180
|
+
npm run db:init
|
|
181
|
+
|
|
182
|
+
# Run migrations
|
|
183
|
+
npm run db:migrate
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
## 🔧 Available Commands
|
|
187
|
+
|
|
188
|
+
### Development Commands
|
|
189
|
+
```bash
|
|
190
|
+
npm run dev # MCP server development mode
|
|
191
|
+
npm run dev:http # HTTP/WebSocket server development mode
|
|
192
|
+
npm run dev:http-v2 # HTTP server v2 development mode
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
### Production Commands
|
|
196
|
+
```bash
|
|
197
|
+
npm run build # TypeScript compilation
|
|
198
|
+
npm run start # MCP server production run
|
|
199
|
+
npm run start:http # HTTP/WebSocket server production run
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
### Test Commands
|
|
203
|
+
```bash
|
|
204
|
+
npm run test # Run all tests
|
|
205
|
+
npm run test:client # Client tests
|
|
206
|
+
npm run test:search # Search functionality tests
|
|
207
|
+
npm run test:forgetting # Forgetting policy tests
|
|
208
|
+
npm run test:performance # Performance benchmarks
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
### Docker Commands
|
|
212
|
+
```bash
|
|
213
|
+
npm run docker:dev # Run development Docker
|
|
214
|
+
npm run docker:prod # Run production Docker
|
|
215
|
+
npm run docker:build # Build Docker image
|
|
216
|
+
npm run docker:logs # Check Docker logs
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
### Utility Commands
|
|
220
|
+
```bash
|
|
221
|
+
npm run setup # Run auto setup
|
|
222
|
+
npm run quick-start # One-click installation and run
|
|
223
|
+
npm run backup:embeddings # Backup embeddings
|
|
224
|
+
npm run regenerate:embeddings # Regenerate embeddings
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
## 🌐 Access Information
|
|
228
|
+
|
|
229
|
+
After installation, you can access the following addresses:
|
|
230
|
+
|
|
231
|
+
- **MCP Server**: `stdio` or `ws://localhost:8080/mcp`
|
|
232
|
+
- **HTTP API**: `http://localhost:8080`
|
|
233
|
+
- **WebSocket**: `ws://localhost:8080`
|
|
234
|
+
- **Admin Dashboard**: `http://localhost:8080/admin`
|
|
235
|
+
|
|
236
|
+
## 🚨 Troubleshooting
|
|
237
|
+
|
|
238
|
+
### Common Issues
|
|
239
|
+
|
|
240
|
+
#### 1. Node.js Version Error
|
|
241
|
+
```bash
|
|
242
|
+
# Node.js 20+ required
|
|
243
|
+
node --version
|
|
244
|
+
|
|
245
|
+
# Install Node.js with nvm (Linux/macOS)
|
|
246
|
+
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
|
|
247
|
+
nvm install 20
|
|
248
|
+
nvm use 20
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
#### 2. Port Conflict
|
|
252
|
+
```bash
|
|
253
|
+
# If port 8080 is in use
|
|
254
|
+
# Change PORT in .env file
|
|
255
|
+
PORT=8081
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
#### 3. Database Error
|
|
259
|
+
```bash
|
|
260
|
+
# Reinitialize database
|
|
261
|
+
rm -rf data/memory.db*
|
|
262
|
+
npm run db:init
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
#### 4. Docker Error
|
|
266
|
+
```bash
|
|
267
|
+
# Complete Docker container cleanup
|
|
268
|
+
docker-compose down -v
|
|
269
|
+
docker system prune -a
|
|
270
|
+
docker-compose up -d
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
### Log Checking
|
|
274
|
+
```bash
|
|
275
|
+
# Application logs
|
|
276
|
+
tail -f logs/memento-server.log
|
|
277
|
+
|
|
278
|
+
# Docker logs
|
|
279
|
+
docker-compose logs -f
|
|
280
|
+
|
|
281
|
+
# System logs (Linux)
|
|
282
|
+
journalctl -u memento-mcp-server -f
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
## 📞 Support
|
|
286
|
+
|
|
287
|
+
- **Issue Reports**: [GitHub Issues](https://github.com/jee1/memento/issues)
|
|
288
|
+
- **Documentation**: [Wiki](https://github.com/jee1/memento/wiki)
|
|
289
|
+
- **Developer Guide**: [docs/en/developer-guide.md](docs/en/developer-guide.md)
|
|
290
|
+
- **API Reference**: [docs/en/api-reference.md](docs/en/api-reference.md)
|
|
291
|
+
|
|
292
|
+
## 🎉 Installation Complete!
|
|
293
|
+
|
|
294
|
+
After installation, proceed with the following steps:
|
|
295
|
+
|
|
296
|
+
1. **Check Server Status**: `http://localhost:8080/health`
|
|
297
|
+
2. **Connect MCP Client**: [Client Guide](packages/mcp-client/README.md)
|
|
298
|
+
3. **Test API**: [API Documentation](docs/en/api-reference.md)
|
|
299
|
+
4. **Learn Usage**: [User Manual](docs/en/user-manual.md)
|
|
300
|
+
|
|
301
|
+
---
|
|
302
|
+
|
|
303
|
+
**💡 Tip**: For first-time users, you can complete all setup automatically with the `npm run quick-start` command!
|