memento-mcp-server 1.6.0 → 1.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/INSTALL.en.md +303 -303
- package/INSTALL.md +303 -303
- package/README.en.md +331 -330
- package/README.md +432 -432
- package/dist/algorithms/hybrid-search-engine.d.ts +114 -44
- package/dist/algorithms/hybrid-search-engine.d.ts.map +1 -1
- package/dist/algorithms/hybrid-search-engine.js +261 -235
- package/dist/algorithms/hybrid-search-engine.js.map +1 -1
- package/dist/algorithms/search-engine.d.ts +2 -14
- package/dist/algorithms/search-engine.d.ts.map +1 -1
- package/dist/algorithms/search-engine.js +43 -35
- package/dist/algorithms/search-engine.js.map +1 -1
- package/dist/algorithms/vector-search-engine-migration.d.ts +67 -0
- package/dist/algorithms/vector-search-engine-migration.d.ts.map +1 -0
- package/dist/algorithms/vector-search-engine-migration.js +196 -0
- package/dist/algorithms/vector-search-engine-migration.js.map +1 -0
- package/dist/algorithms/vector-search-engine-refactored.d.ts +56 -0
- package/dist/algorithms/vector-search-engine-refactored.d.ts.map +1 -0
- package/dist/algorithms/vector-search-engine-refactored.js +101 -0
- package/dist/algorithms/vector-search-engine-refactored.js.map +1 -0
- package/dist/algorithms/vector-search-engine.d.ts +9 -2
- package/dist/algorithms/vector-search-engine.d.ts.map +1 -1
- package/dist/algorithms/vector-search-engine.js +245 -121
- package/dist/algorithms/vector-search-engine.js.map +1 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +34 -11
- package/dist/client/index.js.map +1 -1
- package/dist/config/environment.d.ts +26 -0
- package/dist/config/environment.d.ts.map +1 -0
- package/dist/config/environment.js +103 -0
- package/dist/config/environment.js.map +1 -0
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +29 -50
- package/dist/config/index.js.map +1 -1
- package/dist/config/vector-search.config.d.ts +25 -0
- package/dist/config/vector-search.config.d.ts.map +1 -0
- package/dist/config/vector-search.config.js +40 -0
- package/dist/config/vector-search.config.js.map +1 -0
- package/dist/database/init.d.ts.map +1 -1
- package/dist/database/init.js +154 -17
- package/dist/database/init.js.map +1 -1
- package/dist/database/migrate.d.ts +2 -1
- package/dist/database/migrate.d.ts.map +1 -1
- package/dist/database/migrate.js +191 -18
- package/dist/database/migrate.js.map +1 -1
- package/dist/database/schema.sql +234 -159
- package/dist/factories/hybrid-search.factory.d.ts +20 -0
- package/dist/factories/hybrid-search.factory.d.ts.map +1 -0
- package/dist/factories/hybrid-search.factory.js +57 -0
- package/dist/factories/hybrid-search.factory.js.map +1 -0
- package/dist/factories/spaced-repetition.factory.d.ts +48 -0
- package/dist/factories/spaced-repetition.factory.d.ts.map +1 -0
- package/dist/factories/spaced-repetition.factory.js +187 -0
- package/dist/factories/spaced-repetition.factory.js.map +1 -0
- package/dist/factories/vector-search.factory.d.ts +25 -0
- package/dist/factories/vector-search.factory.d.ts.map +1 -0
- package/dist/factories/vector-search.factory.js +47 -0
- package/dist/factories/vector-search.factory.js.map +1 -0
- package/dist/interfaces/database.interface.d.ts +36 -0
- package/dist/interfaces/database.interface.d.ts.map +1 -0
- package/dist/interfaces/database.interface.js +6 -0
- package/dist/interfaces/database.interface.js.map +1 -0
- package/dist/interfaces/spaced-repetition.interface.d.ts +63 -0
- package/dist/interfaces/spaced-repetition.interface.d.ts.map +1 -0
- package/dist/interfaces/spaced-repetition.interface.js +6 -0
- package/dist/interfaces/spaced-repetition.interface.js.map +1 -0
- package/dist/repositories/vector-performance.repository.d.ts +25 -0
- package/dist/repositories/vector-performance.repository.d.ts.map +1 -0
- package/dist/repositories/vector-performance.repository.js +134 -0
- package/dist/repositories/vector-performance.repository.js.map +1 -0
- package/dist/repositories/vector-search.repository.d.ts +43 -0
- package/dist/repositories/vector-search.repository.d.ts.map +1 -0
- package/dist/repositories/vector-search.repository.js +377 -0
- package/dist/repositories/vector-search.repository.js.map +1 -0
- package/dist/server/http-server.d.ts.map +1 -1
- package/dist/server/http-server.js +25 -24
- package/dist/server/http-server.js.map +1 -1
- package/dist/server/index.d.ts +1 -0
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +7 -7
- package/dist/server/index.js.map +1 -1
- package/dist/services/alert-notification-service.d.ts +16 -0
- package/dist/services/alert-notification-service.d.ts.map +1 -0
- package/dist/services/alert-notification-service.js +44 -0
- package/dist/services/alert-notification-service.js.map +1 -0
- package/dist/services/async-optimizer.d.ts +62 -8
- package/dist/services/async-optimizer.d.ts.map +1 -1
- package/dist/services/async-optimizer.js +137 -8
- package/dist/services/async-optimizer.js.map +1 -1
- package/dist/services/batch-scheduler.d.ts +6 -0
- package/dist/services/batch-scheduler.d.ts.map +1 -1
- package/dist/services/batch-scheduler.js +59 -19
- package/dist/services/batch-scheduler.js.map +1 -1
- package/dist/services/cache-service.d.ts +32 -0
- package/dist/services/cache-service.d.ts.map +1 -1
- package/dist/services/cache-service.js +81 -6
- package/dist/services/cache-service.js.map +1 -1
- package/dist/services/database-optimizer.js +63 -63
- package/dist/services/database-optimizer.js.map +1 -1
- package/dist/services/embedding-migration-service.d.ts +24 -0
- package/dist/services/embedding-migration-service.d.ts.map +1 -0
- package/dist/services/embedding-migration-service.js +360 -0
- package/dist/services/embedding-migration-service.js.map +1 -0
- package/dist/services/embedding-provider-factory.d.ts +12 -5
- package/dist/services/embedding-provider-factory.d.ts.map +1 -1
- package/dist/services/embedding-provider-factory.js +107 -26
- package/dist/services/embedding-provider-factory.js.map +1 -1
- package/dist/services/forgetting-policy-service.js +17 -17
- package/dist/services/gemini-embedding-service.d.ts +1 -1
- package/dist/services/gemini-embedding-service.d.ts.map +1 -1
- package/dist/services/gemini-embedding-service.js +25 -18
- package/dist/services/gemini-embedding-service.js.map +1 -1
- package/dist/services/memory-embedding-service.d.ts +8 -0
- package/dist/services/memory-embedding-service.d.ts.map +1 -1
- package/dist/services/memory-embedding-service.js +180 -71
- package/dist/services/memory-embedding-service.js.map +1 -1
- package/dist/services/migration-history-service.d.ts +14 -0
- package/dist/services/migration-history-service.d.ts.map +1 -0
- package/dist/services/migration-history-service.js +270 -0
- package/dist/services/migration-history-service.js.map +1 -0
- package/dist/services/migration-monitor-service.d.ts +24 -0
- package/dist/services/migration-monitor-service.d.ts.map +1 -0
- package/dist/services/migration-monitor-service.js +93 -0
- package/dist/services/migration-monitor-service.js.map +1 -0
- package/dist/services/model-availability-service.d.ts +22 -0
- package/dist/services/model-availability-service.d.ts.map +1 -0
- package/dist/services/model-availability-service.js +140 -0
- package/dist/services/model-availability-service.js.map +1 -0
- package/dist/services/openai-embedding-service.d.ts +36 -0
- package/dist/services/openai-embedding-service.d.ts.map +1 -0
- package/dist/services/openai-embedding-service.js +192 -0
- package/dist/services/openai-embedding-service.js.map +1 -0
- package/dist/services/performance-monitor.d.ts +154 -10
- package/dist/services/performance-monitor.d.ts.map +1 -1
- package/dist/services/performance-monitor.js +446 -60
- package/dist/services/performance-monitor.js.map +1 -1
- package/dist/services/spaced-repetition/interval-calculation.service.d.ts +38 -0
- package/dist/services/spaced-repetition/interval-calculation.service.d.ts.map +1 -0
- package/dist/services/spaced-repetition/interval-calculation.service.js +105 -0
- package/dist/services/spaced-repetition/interval-calculation.service.js.map +1 -0
- package/dist/services/spaced-repetition/optimal-interval.service.d.ts +56 -0
- package/dist/services/spaced-repetition/optimal-interval.service.d.ts.map +1 -0
- package/dist/services/spaced-repetition/optimal-interval.service.js +163 -0
- package/dist/services/spaced-repetition/optimal-interval.service.js.map +1 -0
- package/dist/services/spaced-repetition/performance-analysis.service.d.ts +48 -0
- package/dist/services/spaced-repetition/performance-analysis.service.d.ts.map +1 -0
- package/dist/services/spaced-repetition/performance-analysis.service.js +174 -0
- package/dist/services/spaced-repetition/performance-analysis.service.js.map +1 -0
- package/dist/services/spaced-repetition/priority-calculation.service.d.ts +53 -0
- package/dist/services/spaced-repetition/priority-calculation.service.d.ts.map +1 -0
- package/dist/services/spaced-repetition/priority-calculation.service.js +161 -0
- package/dist/services/spaced-repetition/priority-calculation.service.js.map +1 -0
- package/dist/services/spaced-repetition/recall-probability.service.d.ts +36 -0
- package/dist/services/spaced-repetition/recall-probability.service.d.ts.map +1 -0
- package/dist/services/spaced-repetition/recall-probability.service.js +88 -0
- package/dist/services/spaced-repetition/recall-probability.service.js.map +1 -0
- package/dist/services/spaced-repetition/review-scheduling.service.d.ts +43 -0
- package/dist/services/spaced-repetition/review-scheduling.service.d.ts.map +1 -0
- package/dist/services/spaced-repetition/review-scheduling.service.js +130 -0
- package/dist/services/spaced-repetition/review-scheduling.service.js.map +1 -0
- package/dist/services/spaced-repetition/spaced-repetition-container.d.ts +69 -0
- package/dist/services/spaced-repetition/spaced-repetition-container.d.ts.map +1 -0
- package/dist/services/spaced-repetition/spaced-repetition-container.js +136 -0
- package/dist/services/spaced-repetition/spaced-repetition-container.js.map +1 -0
- package/dist/services/unified-embedding-service.d.ts +3 -0
- package/dist/services/unified-embedding-service.d.ts.map +1 -1
- package/dist/services/unified-embedding-service.js +58 -62
- package/dist/services/unified-embedding-service.js.map +1 -1
- package/dist/services/vector-compatibility-service.d.ts +68 -0
- package/dist/services/vector-compatibility-service.d.ts.map +1 -0
- package/dist/services/vector-compatibility-service.js +373 -0
- package/dist/services/vector-compatibility-service.js.map +1 -0
- package/dist/services/vector-search/vector-index-manager.d.ts +27 -0
- package/dist/services/vector-search/vector-index-manager.d.ts.map +1 -0
- package/dist/services/vector-search/vector-index-manager.js +66 -0
- package/dist/services/vector-search/vector-index-manager.js.map +1 -0
- package/dist/services/vector-search/vector-performance-tester.d.ts +30 -0
- package/dist/services/vector-search/vector-performance-tester.d.ts.map +1 -0
- package/dist/services/vector-search/vector-performance-tester.js +87 -0
- package/dist/services/vector-search/vector-performance-tester.js.map +1 -0
- package/dist/services/vector-search/vector-search-container.d.ts +41 -0
- package/dist/services/vector-search/vector-search-container.d.ts.map +1 -0
- package/dist/services/vector-search/vector-search-container.js +74 -0
- package/dist/services/vector-search/vector-search-container.js.map +1 -0
- package/dist/services/vector-search/vector-search-facade.d.ts +63 -0
- package/dist/services/vector-search/vector-search-facade.d.ts.map +1 -0
- package/dist/services/vector-search/vector-search-facade.js +91 -0
- package/dist/services/vector-search/vector-search-facade.js.map +1 -0
- package/dist/services/vector-search/vector-search-result-normalizer.d.ts +6 -0
- package/dist/services/vector-search/vector-search-result-normalizer.d.ts.map +1 -0
- package/dist/services/vector-search/vector-search-result-normalizer.js +65 -0
- package/dist/services/vector-search/vector-search-result-normalizer.js.map +1 -0
- package/dist/services/vector-search/vector-search.service.d.ts +33 -0
- package/dist/services/vector-search/vector-search.service.d.ts.map +1 -0
- package/dist/services/vector-search/vector-search.service.js +149 -0
- package/dist/services/vector-search/vector-search.service.js.map +1 -0
- package/dist/tools/forget-tool.js +14 -14
- package/dist/tools/pin-tool.js +14 -14
- package/dist/tools/unpin-tool.js +21 -21
- package/dist/types/alerts.types.d.ts +26 -0
- package/dist/types/alerts.types.d.ts.map +1 -0
- package/dist/types/alerts.types.js +2 -0
- package/dist/types/alerts.types.js.map +1 -0
- package/dist/types/embedding-provider-monitoring.types.d.ts +24 -0
- package/dist/types/embedding-provider-monitoring.types.d.ts.map +1 -0
- package/dist/types/embedding-provider-monitoring.types.js +2 -0
- package/dist/types/embedding-provider-monitoring.types.js.map +1 -0
- package/dist/types/embedding.types.d.ts +36 -1
- package/dist/types/embedding.types.d.ts.map +1 -1
- package/dist/types/migration.types.d.ts +131 -0
- package/dist/types/migration.types.d.ts.map +1 -0
- package/dist/types/migration.types.js +6 -0
- package/dist/types/migration.types.js.map +1 -0
- package/dist/types/spaced-repetition.types.d.ts +61 -0
- package/dist/types/spaced-repetition.types.d.ts.map +1 -0
- package/dist/types/spaced-repetition.types.js +6 -0
- package/dist/types/spaced-repetition.types.js.map +1 -0
- package/dist/types/vector-search.types.d.ts +96 -0
- package/dist/types/vector-search.types.d.ts.map +1 -0
- package/dist/types/vector-search.types.js +2 -0
- package/dist/types/vector-search.types.js.map +1 -0
- package/dist/utils/configuration-validator.d.ts +23 -0
- package/dist/utils/configuration-validator.d.ts.map +1 -0
- package/dist/utils/configuration-validator.js +102 -0
- package/dist/utils/configuration-validator.js.map +1 -0
- package/dist/utils/database.d.ts.map +1 -1
- package/dist/utils/database.js +101 -95
- package/dist/utils/database.js.map +1 -1
- package/dist/utils/environment-check.d.ts +8 -0
- package/dist/utils/environment-check.d.ts.map +1 -0
- package/dist/utils/environment-check.js +25 -0
- package/dist/utils/environment-check.js.map +1 -0
- package/dist/utils/logger.d.ts +8 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +33 -0
- package/dist/utils/logger.js.map +1 -0
- package/package.json +139 -125
- package/scripts/auto-setup.js +233 -233
- package/scripts/backup-daily.bat +28 -28
- package/scripts/backup-embeddings.js +108 -108
- package/scripts/check-db-integrity.js +93 -93
- package/scripts/debug-embeddings.js +184 -184
- package/scripts/direct-sql-migration.sql +36 -36
- package/scripts/docker-migration.sh +105 -105
- package/scripts/fix-migration.js +93 -93
- package/scripts/fix-vector-dimensions.js +206 -206
- package/scripts/migrate-embedding-data.js +307 -307
- package/scripts/regenerate-embeddings.js +144 -144
- package/scripts/restore-legacy.ps1 +60 -60
- package/scripts/run-migration.js +122 -122
- package/scripts/safe-migration.js +150 -150
- package/scripts/simple-migrate.js +41 -41
- package/scripts/simple-update.js +123 -123
- package/src/database/schema.sql +234 -159
- package/.cursor/rules/cache-management.mdc +0 -171
- package/.cursor/rules/database-schema.mdc +0 -344
- package/.cursor/rules/deployment.mdc +0 -596
- package/.cursor/rules/error-logging.mdc +0 -298
- package/.cursor/rules/forgetting-algorithms.mdc +0 -426
- package/.cursor/rules/http-server.mdc +0 -432
- package/.cursor/rules/hybrid-search.mdc +0 -424
- package/.cursor/rules/implementation.mdc +0 -369
- package/.cursor/rules/lightweight-embedding.mdc +0 -178
- 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 +0 -205
- package/.cursor/rules/memento-memory-rule.mdc +0 -8
- package/.cursor/rules/memento-project-overview.mdc +0 -0
- package/.cursor/rules/memory-algorithms.mdc +0 -502
- package/.cursor/rules/monitoring.mdc +0 -622
- package/.cursor/rules/performance-alerts.mdc +0 -537
- package/.cursor/rules/performance-monitoring.mdc +0 -345
- package/.cursor/rules/performance-optimization.mdc +0 -563
- package/.cursor/rules/project-structure.mdc +0 -310
- package/.cursor/rules/testing.mdc +0 -473
- package/.dockerignore +0 -15
- package/.eslintrc.json +0 -34
- package/.github/ISSUE_TEMPLATE/bug_report.md +0 -51
- package/.github/ISSUE_TEMPLATE/feature_request.md +0 -45
- package/.github/ISSUE_TEMPLATE/question.md +0 -31
- package/.github/PULL_REQUEST_TEMPLATE.md +0 -97
- package/AGENTS.md +0 -28
- package/CHANGELOG.md +0 -416
- package/CODE_OF_CONDUCT.md +0 -62
- package/CONTRIBUTING.md +0 -165
- package/DOCKER_SETUP_GUIDE.md +0 -84
- package/Dockerfile +0 -90
- package/backup/legacy-removal-20250930-201816/http-server-legacy.ts +0 -1068
- package/backup/legacy-removal-20250930-201816/rollback-to-legacy.ps1 +0 -46
- package/backup/legacy-removal-20250930-201816/rollback-to-legacy.sh +0 -48
- package/dist/server/index-backup.d.ts +0 -5
- package/dist/server/index-backup.d.ts.map +0 -1
- package/dist/server/index-backup.js +0 -793
- package/dist/server/index-backup.js.map +0 -1
- package/dist/server/index-refactored.d.ts +0 -6
- package/dist/server/index-refactored.d.ts.map +0 -1
- package/dist/server/index-refactored.js +0 -206
- package/dist/server/index-refactored.js.map +0 -1
- package/dist/services/performance-monitoring-integration.d.ts +0 -77
- package/dist/services/performance-monitoring-integration.d.ts.map +0 -1
- package/dist/services/performance-monitoring-integration.js +0 -177
- package/dist/services/performance-monitoring-integration.js.map +0 -1
- package/dist/test/debug-http-v2.d.ts +0 -5
- package/dist/test/debug-http-v2.d.ts.map +0 -1
- package/dist/test/debug-http-v2.js +0 -28
- package/dist/test/debug-http-v2.js.map +0 -1
- package/dist/test/performance-benchmark.d.ts +0 -57
- package/dist/test/performance-benchmark.d.ts.map +0 -1
- package/dist/test/performance-benchmark.js +0 -427
- package/dist/test/performance-benchmark.js.map +0 -1
- package/dist/test/test-alerts-direct.d.ts +0 -7
- package/dist/test/test-alerts-direct.d.ts.map +0 -1
- package/dist/test/test-alerts-direct.js +0 -101
- package/dist/test/test-alerts-direct.js.map +0 -1
- package/dist/test/test-batch-scheduler.d.ts +0 -2
- package/dist/test/test-batch-scheduler.d.ts.map +0 -1
- package/dist/test/test-batch-scheduler.js +0 -156
- package/dist/test/test-batch-scheduler.js.map +0 -1
- package/dist/test/test-client.d.ts +0 -5
- package/dist/test/test-client.d.ts.map +0 -1
- package/dist/test/test-client.js +0 -86
- package/dist/test/test-client.js.map +0 -1
- package/dist/test/test-embedding.d.ts +0 -6
- package/dist/test/test-embedding.d.ts.map +0 -1
- package/dist/test/test-embedding.js +0 -142
- package/dist/test/test-embedding.js.map +0 -1
- package/dist/test/test-error-logging.d.ts +0 -7
- package/dist/test/test-error-logging.d.ts.map +0 -1
- package/dist/test/test-error-logging.js +0 -105
- package/dist/test/test-error-logging.js.map +0 -1
- package/dist/test/test-forgetting.d.ts +0 -6
- package/dist/test/test-forgetting.d.ts.map +0 -1
- package/dist/test/test-forgetting.js +0 -154
- package/dist/test/test-forgetting.js.map +0 -1
- package/dist/test/test-gemini-embedding.d.ts +0 -7
- package/dist/test/test-gemini-embedding.d.ts.map +0 -1
- package/dist/test/test-gemini-embedding.js +0 -134
- package/dist/test/test-gemini-embedding.js.map +0 -1
- package/dist/test/test-http-server-v2-simple.d.ts +0 -6
- package/dist/test/test-http-server-v2-simple.d.ts.map +0 -1
- package/dist/test/test-http-server-v2-simple.js +0 -131
- package/dist/test/test-http-server-v2-simple.js.map +0 -1
- package/dist/test/test-http-server-v2.d.ts +0 -7
- package/dist/test/test-http-server-v2.d.ts.map +0 -1
- package/dist/test/test-http-server-v2.js +0 -529
- package/dist/test/test-http-server-v2.js.map +0 -1
- package/dist/test/test-lightweight-embedding.d.ts +0 -6
- package/dist/test/test-lightweight-embedding.d.ts.map +0 -1
- package/dist/test/test-lightweight-embedding.js +0 -189
- package/dist/test/test-lightweight-embedding.js.map +0 -1
- package/dist/test/test-m1-completion.d.ts +0 -7
- package/dist/test/test-m1-completion.d.ts.map +0 -1
- package/dist/test/test-m1-completion.js +0 -124
- package/dist/test/test-m1-completion.js.map +0 -1
- package/dist/test/test-memory-injection-prompt.d.ts +0 -2
- package/dist/test/test-memory-injection-prompt.d.ts.map +0 -1
- package/dist/test/test-memory-injection-prompt.js +0 -299
- package/dist/test/test-memory-injection-prompt.js.map +0 -1
- package/dist/test/test-performance-alerts.d.ts +0 -7
- package/dist/test/test-performance-alerts.d.ts.map +0 -1
- package/dist/test/test-performance-alerts.js +0 -109
- package/dist/test/test-performance-alerts.js.map +0 -1
- package/dist/test/test-performance-monitor.d.ts +0 -2
- package/dist/test/test-performance-monitor.d.ts.map +0 -1
- package/dist/test/test-performance-monitor.js +0 -182
- package/dist/test/test-performance-monitor.js.map +0 -1
- package/dist/test/test-performance-monitoring.d.ts +0 -6
- package/dist/test/test-performance-monitoring.d.ts.map +0 -1
- package/dist/test/test-performance-monitoring.js +0 -156
- package/dist/test/test-performance-monitoring.js.map +0 -1
- package/dist/test/test-search.d.ts +0 -5
- package/dist/test/test-search.d.ts.map +0 -1
- package/dist/test/test-search.js +0 -141
- package/dist/test/test-search.js.map +0 -1
- package/dist/test/test-simple-alerts.d.ts +0 -6
- package/dist/test/test-simple-alerts.d.ts.map +0 -1
- package/dist/test/test-simple-alerts.js +0 -106
- package/dist/test/test-simple-alerts.js.map +0 -1
- package/dist/test/test-vector-search-engine.d.ts +0 -2
- package/dist/test/test-vector-search-engine.d.ts.map +0 -1
- package/dist/test/test-vector-search-engine.js +0 -225
- package/dist/test/test-vector-search-engine.js.map +0 -1
- package/docker-compose.dev.yml +0 -50
- package/docker-compose.prod.yml +0 -77
- package/docker-compose.yml +0 -43
- package/docs/en/Memento-Goals.md +0 -217
- package/docs/en/Memento-M1-DetailSpecs.md +0 -130
- package/docs/en/Memento-Milestones.md +0 -135
- package/docs/en/Search-Ranking-Memory-Decay-Formulas.md +0 -177
- package/docs/en/api-reference.md +0 -658
- package/docs/en/architecture.md +0 -1302
- package/docs/en/developer-guide.md +0 -1005
- package/docs/en/user-manual.md +0 -595
- package/docs/ko/Memento-Goals.md +0 -217
- package/docs/ko/Memento-M1-DetailSpecs.md +0 -130
- package/docs/ko/Memento-Milestones.md +0 -134
- package/docs/ko/Search-Ranking-Memory-Decay-Formulas.md +0 -177
- package/docs/ko/api-reference.md +0 -658
- package/docs/ko/architecture.md +0 -1302
- package/docs/ko/developer-guide.md +0 -1006
- package/docs/ko/embedding-api-reference.md +0 -122
- package/docs/ko/embedding-configuration.md +0 -62
- package/docs/ko/embedding-performance-benchmark.md +0 -62
- package/docs/ko/embedding-service-guide.md +0 -314
- package/docs/ko/user-manual.md +0 -595
- package/env.example +0 -49
- package/install.sh +0 -191
- package/mcp-http-client.js +0 -218
- package/mcp.json +0 -0
- package/packages/mcp-client/docs/API-REFERENCE.md +0 -560
- package/packages/mcp-client/docs/BEST-PRACTICES.md +0 -564
- package/packages/mcp-client/docs/MIGRATION-GUIDE.md +0 -344
- package/packages/mcp-client/docs/PERFORMANCE-GUIDE.md +0 -476
- package/packages/mcp-client/docs/TROUBLESHOOTING.md +0 -564
- package/packages/mcp-client/package-lock.json +0 -907
- package/packages/mcp-client/package.json +0 -58
- package/packages/mcp-client/performance-optimizer.js +0 -428
- package/packages/mcp-client/test-basic.js +0 -65
- package/packages/mcp-client/test-integration.js +0 -366
- package/src/algorithms/forgetting-algorithm.spec.ts +0 -538
- package/src/algorithms/forgetting-algorithm.ts +0 -243
- package/src/algorithms/hybrid-search-engine.spec.ts +0 -484
- package/src/algorithms/hybrid-search-engine.ts +0 -489
- package/src/algorithms/search-engine.spec.ts +0 -429
- package/src/algorithms/search-engine.ts +0 -392
- package/src/algorithms/search-ranking.spec.ts +0 -293
- package/src/algorithms/search-ranking.ts +0 -407
- package/src/algorithms/spaced-repetition.spec.ts +0 -510
- package/src/algorithms/spaced-repetition.ts +0 -238
- package/src/algorithms/vector-search-engine.ts +0 -505
- package/src/client/index.spec.ts +0 -427
- package/src/client/index.ts +0 -222
- package/src/config/index.spec.ts +0 -339
- package/src/config/index.ts +0 -106
- package/src/database/init.spec.ts +0 -239
- package/src/database/init.ts +0 -130
- package/src/database/migrate.spec.ts +0 -293
- package/src/database/migrate.ts +0 -94
- package/src/database/migrations/001_add_embedding_metadata.sql +0 -29
- package/src/npm-client/context-injector.spec.ts +0 -335
- package/src/npm-client/context-injector.ts +0 -412
- package/src/npm-client/index.spec.ts +0 -108
- package/src/npm-client/index.ts +0 -96
- package/src/npm-client/memento-client.spec.ts +0 -549
- package/src/npm-client/memento-client.ts +0 -501
- package/src/npm-client/memory-manager.spec.ts +0 -374
- package/src/npm-client/memory-manager.ts +0 -414
- package/src/npm-client/types.spec.ts +0 -427
- package/src/npm-client/types.ts +0 -296
- package/src/npm-client/utils.spec.ts +0 -355
- package/src/npm-client/utils.ts +0 -423
- package/src/scripts/copy-assets.js +0 -37
- package/src/server/http-server.spec.ts +0 -648
- package/src/server/http-server.ts +0 -1030
- package/src/server/index-backup.ts +0 -875
- package/src/server/index-refactored.ts +0 -237
- package/src/server/index.spec.ts +0 -281
- package/src/server/index.ts +0 -347
- package/src/server/simple-mcp-server.spec.ts +0 -207
- package/src/server/simple-mcp-server.ts +0 -173
- package/src/services/async-optimizer.spec.ts +0 -569
- package/src/services/async-optimizer.ts +0 -484
- package/src/services/batch-scheduler.ts +0 -759
- package/src/services/cache-service.spec.ts +0 -372
- package/src/services/cache-service.ts +0 -434
- package/src/services/database-optimizer.spec.ts +0 -344
- package/src/services/database-optimizer.ts +0 -450
- package/src/services/embedding-provider-factory.ts +0 -173
- package/src/services/embedding-service.spec.ts +0 -342
- package/src/services/embedding-service.ts +0 -333
- package/src/services/error-logging-service.spec.ts +0 -416
- package/src/services/error-logging-service.ts +0 -383
- package/src/services/forgetting-policy-service.spec.ts +0 -140
- package/src/services/forgetting-policy-service.ts +0 -334
- package/src/services/gemini-embedding-service.spec.ts +0 -463
- package/src/services/gemini-embedding-service.ts +0 -283
- package/src/services/lightweight-embedding-service.spec.ts +0 -458
- package/src/services/lightweight-embedding-service.ts +0 -324
- package/src/services/memory-embedding-service.spec.ts +0 -417
- package/src/services/memory-embedding-service.ts +0 -289
- package/src/services/minilm-embedding-service.spec.ts +0 -104
- package/src/services/minilm-embedding-service.ts +0 -262
- package/src/services/performance-alert-service.spec.ts +0 -517
- package/src/services/performance-alert-service.ts +0 -477
- package/src/services/performance-monitor.spec.ts +0 -401
- package/src/services/performance-monitor.ts +0 -532
- package/src/services/performance-monitoring-integration.spec.ts +0 -478
- package/src/services/performance-monitoring-integration.ts.bak +0 -276
- package/src/services/unified-embedding-service.spec.ts +0 -224
- package/src/services/unified-embedding-service.ts +0 -255
- package/src/test/debug-http-v2.ts +0 -30
- package/src/test/embedding-integration-test.spec.ts +0 -295
- package/src/test/embedding-integration-test.ts +0 -295
- package/src/test/embedding-performance-benchmark.spec.ts +0 -354
- package/src/test/embedding-performance-benchmark.ts +0 -312
- package/src/test/performance-benchmark.ts +0 -565
- package/src/test/test-alerts-direct.ts +0 -136
- package/src/test/test-batch-scheduler-simple.spec.ts +0 -122
- package/src/test/test-batch-scheduler.spec.ts +0 -453
- package/src/test/test-batch-scheduler.ts +0 -182
- package/src/test/test-client.ts +0 -97
- package/src/test/test-embedding.ts +0 -153
- package/src/test/test-error-handling.spec.ts +0 -575
- package/src/test/test-error-logging.ts +0 -117
- package/src/test/test-forgetting.ts +0 -162
- package/src/test/test-gemini-embedding.ts +0 -159
- package/src/test/test-http-server-v2-simple.ts +0 -147
- package/src/test/test-http-server-v2.ts +0 -586
- package/src/test/test-hybrid-search-engine.spec.ts +0 -521
- package/src/test/test-integration-fixed.spec.ts +0 -612
- package/src/test/test-integration.spec.ts +0 -463
- package/src/test/test-lightweight-embedding.ts +0 -208
- package/src/test/test-m1-completion.spec.ts +0 -614
- package/src/test/test-m1-completion.ts +0 -141
- package/src/test/test-m1-integration.spec.ts +0 -514
- package/src/test/test-memory-injection-prompt.spec.ts +0 -650
- package/src/test/test-memory-injection-prompt.ts +0 -391
- package/src/test/test-performance-alerts.ts +0 -125
- package/src/test/test-performance-monitor-updates.spec.ts +0 -490
- package/src/test/test-performance-monitor.spec.ts +0 -284
- package/src/test/test-performance-monitor.ts +0 -228
- package/src/test/test-performance-monitoring.ts +0 -171
- package/src/test/test-search.ts +0 -151
- package/src/test/test-simple-alerts.ts +0 -136
- package/src/test/test-vector-search-engine.spec.ts +0 -408
- package/src/test/test-vector-search-engine.ts +0 -303
- package/src/tools/base-tool.ts +0 -189
- package/src/tools/cleanup-memory-tool.ts +0 -77
- package/src/tools/database-optimize-tool.ts +0 -79
- package/src/tools/error-stats.ts +0 -119
- package/src/tools/forget-tool.spec.ts +0 -613
- package/src/tools/forget-tool.ts +0 -454
- package/src/tools/forgetting-stats-tool.ts +0 -47
- package/src/tools/index.ts +0 -71
- package/src/tools/memory-injection-prompt.ts +0 -257
- package/src/tools/performance-alerts.ts +0 -226
- package/src/tools/performance-stats-tool.ts +0 -48
- package/src/tools/pin-tool.spec.ts +0 -497
- package/src/tools/pin-tool.ts +0 -277
- package/src/tools/recall-tool.spec.ts +0 -475
- package/src/tools/recall-tool.ts +0 -389
- package/src/tools/remember-tool.spec.ts +0 -469
- package/src/tools/remember-tool.ts +0 -112
- package/src/tools/resolve-error.ts +0 -69
- package/src/tools/tool-registry.ts +0 -417
- package/src/tools/types.ts +0 -63
- package/src/tools/unpin-tool.spec.ts +0 -549
- package/src/tools/unpin-tool.ts +0 -306
- package/src/types/embedding.types.ts +0 -78
- package/src/types/index.spec.ts +0 -420
- package/src/types/index.ts +0 -117
- package/src/utils/database.spec.ts +0 -77
- package/src/utils/database.ts +0 -458
- package/src/utils/stopwords.ts +0 -128
- package/start-docker-setup.bat +0 -38
- package/static/logo.png +0 -0
- package/static/memento_logo.svg +0 -2
- package/test-docker.js +0 -103
- package/tsconfig.json +0 -46
- package/vitest.config.ts +0 -23
package/docker-compose.yml
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
services:
|
|
2
|
-
memento-mcp-server:
|
|
3
|
-
build: .
|
|
4
|
-
ports:
|
|
5
|
-
- "9001:9001"
|
|
6
|
-
environment:
|
|
7
|
-
- NODE_ENV=production
|
|
8
|
-
- DOCKER=true
|
|
9
|
-
- DB_PATH=/app/data/memory.db
|
|
10
|
-
- LOG_LEVEL=info
|
|
11
|
-
- OPENAI_API_KEY=${OPENAI_API_KEY}
|
|
12
|
-
- GEMINI_API_KEY=${GEMINI_API_KEY}
|
|
13
|
-
- EMBEDDING_PROVIDER=${EMBEDDING_PROVIDER:-lightweight}
|
|
14
|
-
- GEMINI_MODEL=${GEMINI_MODEL:-text-embedding-004}
|
|
15
|
-
- EMBEDDING_DIMENSIONS=${EMBEDDING_DIMENSIONS:-512}
|
|
16
|
-
- PORT=9001
|
|
17
|
-
volumes:
|
|
18
|
-
- ./data:/app/data
|
|
19
|
-
- ./logs:/app/logs
|
|
20
|
-
restart: unless-stopped
|
|
21
|
-
user: root
|
|
22
|
-
command: ["/app/start-container.sh"]
|
|
23
|
-
stdin_open: true
|
|
24
|
-
tty: true
|
|
25
|
-
healthcheck:
|
|
26
|
-
test: ["CMD", "curl", "-f", "http://localhost:9001/health"]
|
|
27
|
-
interval: 30s
|
|
28
|
-
timeout: 10s
|
|
29
|
-
retries: 3
|
|
30
|
-
start_period: 40s
|
|
31
|
-
|
|
32
|
-
# Redis for caching (optional)
|
|
33
|
-
# redis:
|
|
34
|
-
# image: redis:7-alpine
|
|
35
|
-
# ports:
|
|
36
|
-
# - "6379:6379"
|
|
37
|
-
# volumes:
|
|
38
|
-
# - redis_data:/data
|
|
39
|
-
# restart: unless-stopped
|
|
40
|
-
# command: redis-server --appendonly yes
|
|
41
|
-
|
|
42
|
-
volumes:
|
|
43
|
-
redis_data:
|
package/docs/en/Memento-Goals.md
DELETED
|
@@ -1,217 +0,0 @@
|
|
|
1
|
-
# Memento Goals
|
|
2
|
-
|
|
3
|
-
## 1. Goal Summary
|
|
4
|
-
|
|
5
|
-
**Goal**: Provide storage+search+summary+forgetting mechanisms modeled after human memory systems (working memory, episodic memory, semantic memory, procedural memory) so that agents don't lose conversation/task context.
|
|
6
|
-
|
|
7
|
-
**Non-goals**: Large-scale RAG platforms, general-purpose data lakes. Initially focus on personal/workspace-level long-term memory and conversation-session transitions.
|
|
8
|
-
|
|
9
|
-
### Rationale for Human Memory Model
|
|
10
|
-
|
|
11
|
-
- **Episodic/Semantic Separation**: Tulving lineage – episodic is events, semantic is knowledge. The two systems are interdependent. [PMC](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2657600/) +1
|
|
12
|
-
|
|
13
|
-
- **Working Memory**: Central executive, phonological loop, visuospatial memory components manage "currently processing information". [Simply Psychology](https://www.simplypsychology.org/working-memory.html) +1
|
|
14
|
-
|
|
15
|
-
- **Forgetting/Spaced Repetition**: Ebbinghaus curve and "periodic reminders" are advantageous for long-term retention. [PMC](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2657600/) +1
|
|
16
|
-
|
|
17
|
-
### MCP Application Rationale
|
|
18
|
-
|
|
19
|
-
MCP exposes Tools/Resources/Prompts as standards and can be easily connected from clients (Claude, ChatGPT, Cursor, etc.). [WorkOS](https://workos.com/) +3, [Model Context Protocol](https://modelcontextprotocol.io/) +3
|
|
20
|
-
|
|
21
|
-
## 2. System Overview (Components)
|
|
22
|
-
|
|
23
|
-
### Memory MCP Server
|
|
24
|
-
|
|
25
|
-
- **Protocol**: MCP (spec 2025-03-26)
|
|
26
|
-
- **Interface**: tools (memory write/search/pin/delete, etc.), resources (read-only views), prompts (context injection templates). [Model Context Protocol](https://modelcontextprotocol.io/) +1
|
|
27
|
-
|
|
28
|
-
### Storage
|
|
29
|
-
|
|
30
|
-
- **Primary**: PostgreSQL + pgvector (managing vectors/metadata/transactions together). [GitHub](https://github.com/pgvector/pgvector) +1
|
|
31
|
-
- **Alternative**: SQLite+FTS5 (+lancedb) for embedded, or Qdrant/Milvus for separation
|
|
32
|
-
|
|
33
|
-
### Embedding & Summary
|
|
34
|
-
|
|
35
|
-
Text embedding models (sentence embeddings), "information compression summarizer (map-reduce)" pipeline.
|
|
36
|
-
|
|
37
|
-
### Scheduler/Worker
|
|
38
|
-
|
|
39
|
-
"Sleep consolidation" batch (nighttime clustering, summarization, rule extraction), "forgetting/review" batch (re-exposure, deletion candidate selection).
|
|
40
|
-
|
|
41
|
-
## 3. Data Model (Corresponding to Human Memory)
|
|
42
|
-
|
|
43
|
-
### Core Tables
|
|
44
|
-
|
|
45
|
-
#### memory_item
|
|
46
|
-
- `id`, `type`(working|episodic|semantic|procedural), `title`, `content`, `source`(chat|tool|file|url), `agent_id`, `user_id`, `project_id`
|
|
47
|
-
- `created_at`, `last_accessed_at`, `importance`(0~1), `pinned`(bool), `privacy_scope`(private|team|public), `origin_trace`(json)
|
|
48
|
-
|
|
49
|
-
#### memory_embedding
|
|
50
|
-
- `memory_id` FK, `embedding` vector, `dim`
|
|
51
|
-
|
|
52
|
-
#### memory_tag (N:N)
|
|
53
|
-
- Tags (e.g., tech:mariadb, pref:coffee, task:ads-settlement)
|
|
54
|
-
|
|
55
|
-
#### memory_link
|
|
56
|
-
- Relationships between memories (cause_of, derived_from, duplicates, contradicts) – semantic connection network
|
|
57
|
-
|
|
58
|
-
#### feedback_event
|
|
59
|
-
- `memory_id`, `event`(used|edited|neglected|helpful|not_helpful), `score`, `ts`
|
|
60
|
-
|
|
61
|
-
### Working Memory Buffer
|
|
62
|
-
|
|
63
|
-
#### wm_buffer
|
|
64
|
-
- `session_id`, `items`(json), `token_budget`, `expires_at`
|
|
65
|
-
|
|
66
|
-
When session ends/token limit exceeded, transition to **episodic** snapshot.
|
|
67
|
-
|
|
68
|
-
## 4. Search, Ranking, Forgetting (Including Formulas)
|
|
69
|
-
|
|
70
|
-
### 4.1 Search Score
|
|
71
|
-
|
|
72
|
-
Final score S:
|
|
73
|
-
|
|
74
|
-
```
|
|
75
|
-
S = α * relevance + β * recency + γ * importance + δ * usage - ε * duplication_penalty
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
- **relevance**: Cosine similarity (embedding) + keyword TF-IDF correction
|
|
79
|
-
- **recency**: `exp(-λ * age_days)` (applying Ebbinghaus-type forgetting function; λ is domain-specific tuning) [PMC](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2657600/) +1
|
|
80
|
-
- **importance**: Explicit/inferred ("user preferences, rules, long-term goals" get higher weights)
|
|
81
|
-
- **usage**: Log scale of query/citation/reuse frequency
|
|
82
|
-
- **duplication_penalty**: Deduction for similar items within clusters
|
|
83
|
-
|
|
84
|
-
### 4.2 Forgetting/Spaced Repetition
|
|
85
|
-
|
|
86
|
-
- **Soft deletion candidate queue**: Items with low S and old `last_accessed_at` among non-pinned/non-policy items
|
|
87
|
-
- **Retention policy**: Tag/scope-specific TTL (e.g., wm: 48h, episodic: 90d, semantic: indefinite)
|
|
88
|
-
- **Spaced repetition**: High-importance items generate review events (card-form reminders) for re-exposure
|
|
89
|
-
|
|
90
|
-
### 4.3 Semantic Integration ("Sleep Consolidation")
|
|
91
|
-
|
|
92
|
-
Cluster recent episodic → conflict/consistency check → generate semantic in rule/fact form
|
|
93
|
-
|
|
94
|
-
Implement "fast episodic → slow semantic integration" using CLS hypothesis (hippocampus-neocortex complementary learning) as motif. [PubMed](https://pubmed.ncbi.nlm.nih.gov/) +1
|
|
95
|
-
|
|
96
|
-
## 5. MCP Interface Design (Tools/Resources/Prompts)
|
|
97
|
-
|
|
98
|
-
### 5.1 tools (Summarized Signatures)
|
|
99
|
-
|
|
100
|
-
#### remember
|
|
101
|
-
- **Input**: `content`, `type?`, `tags?`, `importance?`, `source?`, `privacy_scope?`
|
|
102
|
-
- **Output**: `memory_id`
|
|
103
|
-
|
|
104
|
-
#### recall
|
|
105
|
-
- **Input**: `query`, `filters?`(type/tags/time/project/agent), `limit?`
|
|
106
|
-
- **Output**: `items[]`(snippet, score, recall_reason)
|
|
107
|
-
|
|
108
|
-
#### pin / unpin
|
|
109
|
-
|
|
110
|
-
#### forget
|
|
111
|
-
- Hard/soft deletion options, GDPR-style "right to erasure" support
|
|
112
|
-
|
|
113
|
-
#### summarize_thread
|
|
114
|
-
- Current session log → wm_buffer summary → episodic storage
|
|
115
|
-
|
|
116
|
-
#### link
|
|
117
|
-
- Create relationships between memories (cause, derivation, duplication, contradiction)
|
|
118
|
-
|
|
119
|
-
#### export
|
|
120
|
-
- NDJSON/Markdown/CSV export
|
|
121
|
-
|
|
122
|
-
#### feedback
|
|
123
|
-
- Collect usability/accuracy feedback (helpful, not_helpful, attach correct answers)
|
|
124
|
-
|
|
125
|
-
**MCP Spec Rationale**: Standardize tools/resources/prompts so clients can automatically discover, call, and configure. [Model Context Protocol](https://modelcontextprotocol.io/) +1
|
|
126
|
-
|
|
127
|
-
### 5.2 resources
|
|
128
|
-
|
|
129
|
-
- `memory/{id}`: Read-only single view
|
|
130
|
-
- `memory/search?query=...`: Recent search result cache resource (useful for client-side preview)
|
|
131
|
-
|
|
132
|
-
### 5.3 prompts
|
|
133
|
-
|
|
134
|
-
#### memory_injection
|
|
135
|
-
- **Description**: "Before this turn's response, inject 'top 5 related memory summaries' as context"
|
|
136
|
-
- **Parameters**: `query`, `token_budget`
|
|
137
|
-
|
|
138
|
-
Easy for agents to use with MCP Prompts functionality. [Model Context Protocol](https://modelcontextprotocol.io/)
|
|
139
|
-
|
|
140
|
-
## 6. Agent Execution Flow
|
|
141
|
-
|
|
142
|
-
1. **WM Loading**: Organize current user message + previous n-turn summary in `wm_buffer`
|
|
143
|
-
2. **Query Construction**: `query = user_msg + task + wm_summary`
|
|
144
|
-
3. **recall call**:
|
|
145
|
-
- Filter: `project_id`, `tags`, `type in {semantic, episodic}`
|
|
146
|
-
- 1st ANN (vector) → 2nd rerank (BM25/keyword + rule match)
|
|
147
|
-
- Deduplication & compression: map-reduce summary, record conflicts as `link(contradicts)`
|
|
148
|
-
4. **Prompt Injection**: Inject top K items with `prompts.memory_injection`
|
|
149
|
-
5. **After Response Generation**:
|
|
150
|
-
- Record new facts/preferences/decisions with `remember`
|
|
151
|
-
- Reflect `feedback(helpful)` signals
|
|
152
|
-
6. **Batch Work (Night)**: Clustering, summary integration, forgetting/reminder scheduling
|
|
153
|
-
|
|
154
|
-
## 7. Minimum Viable Product (MVP) Spec
|
|
155
|
-
|
|
156
|
-
- Memory write/read/search/pin/delete tools
|
|
157
|
-
- Initially support only episodic/semantic types (working memory as session cache)
|
|
158
|
-
- **Score**: `S = 0.5*relevance + 0.2*recency + 0.2*importance + 0.1*usage`
|
|
159
|
-
- **Retention**: episodic 90d, semantic indefinite, wm 48h
|
|
160
|
-
- **Storage**: Postgres+pgvector, ivfflat index, cosine distance. [GitHub](https://github.com/pgvector/pgvector) +1
|
|
161
|
-
- MCP `prompts.memory_injection` 1 type
|
|
162
|
-
|
|
163
|
-
## 8. Example: TypeScript MCP Server Skeleton
|
|
164
|
-
|
|
165
|
-
```typescript
|
|
166
|
-
// package: mcp-memory-server
|
|
167
|
-
import { Server } from "@modelcontextprotocol/sdk/server";
|
|
168
|
-
import { z } from "zod";
|
|
169
|
-
import { recall, remember, pin, unpin, forget, summarizeThread, link, exportMem, feedback } from "./tools";
|
|
170
|
-
|
|
171
|
-
const server = new Server({ name: "mcp-memory", version: "0.1.0" });
|
|
172
|
-
|
|
173
|
-
// Tools
|
|
174
|
-
server.tool("remember", {
|
|
175
|
-
schema: z.object({
|
|
176
|
-
content: z.string(),
|
|
177
|
-
type: z.enum(["episodic","semantic"]).default("episodic"),
|
|
178
|
-
tags: z.array(z.string()).optional(),
|
|
179
|
-
importance: z.number().min(0).max(1).default(0.5),
|
|
180
|
-
source: z.string().optional(),
|
|
181
|
-
privacy_scope: z.enum(["private","team","public"]).default("private")
|
|
182
|
-
}),
|
|
183
|
-
handler: remember
|
|
184
|
-
});
|
|
185
|
-
|
|
186
|
-
server.tool("recall", {
|
|
187
|
-
schema: z.object({
|
|
188
|
-
query: z.string(),
|
|
189
|
-
filters: z.object({
|
|
190
|
-
type: z.array(z.enum(["episodic","semantic"])).optional(),
|
|
191
|
-
tags: z.array(z.string()).optional(),
|
|
192
|
-
project_id: z.string().optional(),
|
|
193
|
-
time_from: z.string().optional(),
|
|
194
|
-
time_to: z.string().optional()
|
|
195
|
-
}).optional(),
|
|
196
|
-
limit: z.number().default(8)
|
|
197
|
-
}),
|
|
198
|
-
handler: recall
|
|
199
|
-
});
|
|
200
|
-
|
|
201
|
-
// ... register pin/unpin/forget/summarizeThread/link/export/feedback ...
|
|
202
|
-
|
|
203
|
-
// Resources
|
|
204
|
-
server.resource("memory/{id}", async (params) => {/* read-only view */});
|
|
205
|
-
|
|
206
|
-
// Prompts
|
|
207
|
-
server.prompt("memory_injection", {
|
|
208
|
-
params: [{ name: "query", required: true }, { name: "token_budget", required: false }],
|
|
209
|
-
getPrompt: async ({ query, token_budget = 1200 }) => {
|
|
210
|
-
const items = await recall({ query, limit: 6 });
|
|
211
|
-
const summary = await compress(items, token_budget);
|
|
212
|
-
return [{ role: "system", content: `Related long-term memory summary:\n${summary}` }];
|
|
213
|
-
}
|
|
214
|
-
});
|
|
215
|
-
|
|
216
|
-
server.start();
|
|
217
|
-
```
|
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
# MCP Memory Server M1 Detailed Design Document
|
|
2
|
-
|
|
3
|
-
## 1. Purpose
|
|
4
|
-
|
|
5
|
-
This stage (M1) aims to implement a lightweight memory assistant MCP server that can be easily run by individual users in a local environment.
|
|
6
|
-
The database uses SQLite embedded DB that can be used without separate installation, and provides basic functions such as memory storage, search, deletion, and pinning through the MCP interface.
|
|
7
|
-
|
|
8
|
-
## 2. Overall Architecture
|
|
9
|
-
|
|
10
|
-
- **Client**: IDE supporting MCP (e.g., Cursor) or AI Agent
|
|
11
|
-
- **Server**: MCP Memory Server (Node.js/TypeScript based)
|
|
12
|
-
- **Storage**: SQLite database (memory.db file)
|
|
13
|
-
|
|
14
|
-
**Structure**:
|
|
15
|
-
```
|
|
16
|
-
[Client/Agent] ↔ [MCP Memory Server] ↔ [SQLite DB (memory.db)]
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
## 3. Feature Scope
|
|
20
|
-
|
|
21
|
-
### Memory Storage (remember)
|
|
22
|
-
- **Input**: content, type, tags, importance, privacy_scope
|
|
23
|
-
- **Output**: memory_id
|
|
24
|
-
- **Action**: Store text in DB, generate embedding and record in vector column
|
|
25
|
-
|
|
26
|
-
### Memory Search (recall)
|
|
27
|
-
- **Input**: query, filters(type, tags, date), limit
|
|
28
|
-
- **Output**: List of related memories
|
|
29
|
-
- **Action**: Combine FTS5 (keyword) + VSS (vector search)
|
|
30
|
-
|
|
31
|
-
### Memory Deletion (forget)
|
|
32
|
-
- **Soft Delete**: Automatically removed when TTL expires
|
|
33
|
-
- **Hard Delete**: Direct user call
|
|
34
|
-
|
|
35
|
-
### Memory Pin/Unpin (pin/unpin)
|
|
36
|
-
- Exclude specific memories from TTL and forgetting policies
|
|
37
|
-
|
|
38
|
-
## 4. Database Design (SQLite)
|
|
39
|
-
|
|
40
|
-
### 4.1 Main Table
|
|
41
|
-
|
|
42
|
-
```sql
|
|
43
|
-
CREATE TABLE memory_item (
|
|
44
|
-
id TEXT PRIMARY KEY,
|
|
45
|
-
type TEXT CHECK (type IN ('working','episodic','semantic','procedural')),
|
|
46
|
-
content TEXT,
|
|
47
|
-
importance REAL,
|
|
48
|
-
privacy_scope TEXT CHECK (privacy_scope IN ('private','team','public')) DEFAULT 'private',
|
|
49
|
-
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
50
|
-
last_accessed TIMESTAMP,
|
|
51
|
-
pinned BOOLEAN DEFAULT FALSE
|
|
52
|
-
);
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
### 4.2 Indexes
|
|
56
|
-
|
|
57
|
-
#### FTS5 (Text Search)
|
|
58
|
-
```sql
|
|
59
|
-
CREATE VIRTUAL TABLE memory_item_fts USING fts5(content);
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
#### VSS (Vector Search, 1536-dimensional example)
|
|
63
|
-
```sql
|
|
64
|
-
CREATE VIRTUAL TABLE memory_item_vss USING vss0(embedding(1536));
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
## 5. MCP Interface (M1 Limited)
|
|
68
|
-
|
|
69
|
-
### Tools
|
|
70
|
-
- `remember(content, type?, tags?, importance?, privacy_scope?)`
|
|
71
|
-
- `recall(query, filters?, limit?)`
|
|
72
|
-
- `forget(id, hard?)`
|
|
73
|
-
- `pin(id)` / `unpin(id)`
|
|
74
|
-
|
|
75
|
-
### Resources
|
|
76
|
-
- `memory/{id}` (read single memory)
|
|
77
|
-
|
|
78
|
-
### Prompts
|
|
79
|
-
- `memory_injection(query, token_budget)`
|
|
80
|
-
- Inject top 5 related memories summarized into prompt
|
|
81
|
-
|
|
82
|
-
## 6. Forgetting Policy
|
|
83
|
-
|
|
84
|
-
- **Working Memory**: Deleted after 48 hours
|
|
85
|
-
- **Episodic Memory**: Maintained for 90 days
|
|
86
|
-
- **Semantic Memory**: Indefinite
|
|
87
|
-
- **Pinned**: Excluded from deletion targets
|
|
88
|
-
|
|
89
|
-
Periodically run batch jobs (cron jobs) to clean up expired records.
|
|
90
|
-
|
|
91
|
-
## 7. Operation Flow
|
|
92
|
-
|
|
93
|
-
### Memory Storage
|
|
94
|
-
1. User calls `remember`
|
|
95
|
-
2. Record in DB → Update FTS5 index → Generate embedding and record in VSS table
|
|
96
|
-
|
|
97
|
-
### Memory Search
|
|
98
|
-
1. User calls `recall`
|
|
99
|
-
2. Keyword search with FTS5 → Vector search with VSS → Sum scores → Return top K results
|
|
100
|
-
|
|
101
|
-
### Forgetting/Deletion
|
|
102
|
-
1. Batch job deletes TTL expired items
|
|
103
|
-
2. Immediate removal when user calls `forget`
|
|
104
|
-
|
|
105
|
-
## 8. Operations and Deployment
|
|
106
|
-
|
|
107
|
-
- **Runtime Environment**: Node.js (v20 or higher)
|
|
108
|
-
- **Deployment Method**: Local execution
|
|
109
|
-
```bash
|
|
110
|
-
node memory-server.js
|
|
111
|
-
```
|
|
112
|
-
- **DB Management**: Single memory.db file (stored in local storage)
|
|
113
|
-
- **Backup/Restore**: Can be handled by file copying
|
|
114
|
-
|
|
115
|
-
## 9. Limitations and Next Stage Considerations
|
|
116
|
-
|
|
117
|
-
**Limitations**: Single user only, no permission management
|
|
118
|
-
|
|
119
|
-
**Expansion Considerations**:
|
|
120
|
-
- Add API Key authentication in M2
|
|
121
|
-
- Switch to SQLite server mode
|
|
122
|
-
- Plan to enable team collaboration using ACL (user_id, privacy_scope)
|
|
123
|
-
|
|
124
|
-
## 10. Checklist
|
|
125
|
-
|
|
126
|
-
- [ ] SQLite DB initial schema creation completed
|
|
127
|
-
- [ ] MCP Tools (remember, recall, forget, pin/unpin) implementation completed
|
|
128
|
-
- [ ] FTS5 + VSS based search working properly
|
|
129
|
-
- [ ] TTL based forgetting policy batch script applied
|
|
130
|
-
- [ ] MCP Client integration testing completed in local environment
|
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
# 📄 MCP Memory Server Design and Milestones Document
|
|
2
|
-
## 🎯 Vision
|
|
3
|
-
|
|
4
|
-
Implement an AI Agent memory assistant MCP server that mimics human memory structure (working memory, episodic memory, semantic memory).
|
|
5
|
-
|
|
6
|
-
- Personal (MVP): Single SQLite file based, lightweight local execution
|
|
7
|
-
- Team: Internal network only server + single API Key, SQLite + serialization queue
|
|
8
|
-
- Organization: Postgres + pgvector + JWT authentication, SSO/LDAP integration
|
|
9
|
-
|
|
10
|
-
## 🛠 Milestone Overview
|
|
11
|
-
|
|
12
|
-
| Stage | Target | Storage | Authentication | Security Scope | Operation Method |
|
|
13
|
-
|-------|--------|---------|----------------|----------------|------------------|
|
|
14
|
-
| M1 | Personal | SQLite Embedded | None | Local | Local execution |
|
|
15
|
-
| M2 | Team | SQLite Server Mode (WAL + serialization queue) | Single API Key | Internal network only | Docker single container |
|
|
16
|
-
| M3 | Organization Entry | Postgres + pgvector | JWT (user-specific tokens) | Internal network or VPN | Docker Compose (server+DB) |
|
|
17
|
-
| M4 | Organization Expansion | Postgres + HA configuration | JWT + RBAC + SSO/LDAP | Enterprise security policy compliance | Kubernetes/Cloud RDS |
|
|
18
|
-
|
|
19
|
-
## ⚙️ Stage-by-Stage Design
|
|
20
|
-
|
|
21
|
-
### 🔹 M1. Personal Use (MVP)
|
|
22
|
-
|
|
23
|
-
- **DB**: SQLite (memory.db)
|
|
24
|
-
- **Indexes**: FTS5, sqlite-vec (vector search)
|
|
25
|
-
- **MCP Tools**: remember, recall, forget, pin
|
|
26
|
-
- **Forgetting Policy**: TTL-based (working 48h, episodic 90d, semantic indefinite)
|
|
27
|
-
- **Operation**: Local execution (node memory-server.js)
|
|
28
|
-
|
|
29
|
-
### 🔹 M2. Team Collaboration (Internal Network Only Server)
|
|
30
|
-
|
|
31
|
-
- **DB**: SQLite (WAL mode)
|
|
32
|
-
- **Write Processing**: Server-level queuing → serialization
|
|
33
|
-
- **Read Processing**: Multiple concurrent reads possible
|
|
34
|
-
- **Authentication**: Single API Key (API_KEY=team-secret-key)
|
|
35
|
-
- **Security**: Internal network only (external ports blocked)
|
|
36
|
-
- **Operation**: Docker single container
|
|
37
|
-
|
|
38
|
-
```yaml
|
|
39
|
-
services:
|
|
40
|
-
memory-server:
|
|
41
|
-
build: .
|
|
42
|
-
ports:
|
|
43
|
-
- "8080:8080"
|
|
44
|
-
volumes:
|
|
45
|
-
- ./data:/app/data
|
|
46
|
-
environment:
|
|
47
|
-
- DB_PATH=/app/data/memory.db
|
|
48
|
-
- API_KEY=team-secret-key
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
- **ACL**: Apply privacy_scope (private | team)
|
|
52
|
-
|
|
53
|
-
### 🔹 M3. Organization Entry (Postgres Migration)
|
|
54
|
-
|
|
55
|
-
- **DB**: Postgres 15+, pgvector extension
|
|
56
|
-
|
|
57
|
-
**Schema**:
|
|
58
|
-
|
|
59
|
-
```sql
|
|
60
|
-
CREATE TABLE memory_item (
|
|
61
|
-
id UUID PRIMARY KEY,
|
|
62
|
-
user_id TEXT NOT NULL,
|
|
63
|
-
project_id TEXT,
|
|
64
|
-
type TEXT CHECK (type IN ('working','episodic','semantic','procedural')),
|
|
65
|
-
content TEXT,
|
|
66
|
-
importance REAL,
|
|
67
|
-
privacy_scope TEXT CHECK (privacy_scope IN ('private','team','public')) DEFAULT 'private',
|
|
68
|
-
created_at TIMESTAMPTZ DEFAULT now(),
|
|
69
|
-
last_accessed TIMESTAMPTZ,
|
|
70
|
-
embedding vector(1536),
|
|
71
|
-
content_tsv tsvector GENERATED ALWAYS AS (to_tsvector('english', content)) STORED
|
|
72
|
-
);
|
|
73
|
-
CREATE INDEX ON memory_item USING ivfflat (embedding vector_cosine_ops) WITH (lists = 100);
|
|
74
|
-
CREATE INDEX ON memory_item USING GIN (content_tsv);
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
- **Authentication**: JWT-based user-specific tokens (including user_id claim)
|
|
78
|
-
- **Security**: Internal network or VPN restriction
|
|
79
|
-
- **Operation**: Docker Compose (Memory Server + Postgres)
|
|
80
|
-
|
|
81
|
-
### 🔹 M4. Organization Expansion (High Availability + Enterprise Security)
|
|
82
|
-
|
|
83
|
-
- **DB**: Postgres cluster (HA configuration, cloud RDS possible)
|
|
84
|
-
- **Authentication**: JWT + RBAC + SSO/LDAP integration
|
|
85
|
-
- **Permission Model**:
|
|
86
|
-
- privacy_scope: private/team/public
|
|
87
|
-
- project_id: workspace unit
|
|
88
|
-
- RBAC (Role-Based Access Control) → admin/editor/viewer
|
|
89
|
-
- **Operation**: Kubernetes, Helm Chart deployment, monitoring (Prometheus)
|
|
90
|
-
- **Additional Features**: Auto archiving, backup/restore, GDPR-style deletion
|
|
91
|
-
|
|
92
|
-
## 📦 MCP Interface (Common)
|
|
93
|
-
|
|
94
|
-
### Tools
|
|
95
|
-
|
|
96
|
-
- `remember(content, type, tags?, importance?, privacy_scope?)`
|
|
97
|
-
- `recall(query, filters?, limit?)`
|
|
98
|
-
- `pin(id), unpin(id)`
|
|
99
|
-
- `forget(id, hard?)`
|
|
100
|
-
- `summarize_thread(session_id)`
|
|
101
|
-
- `link(src, dst, rel)`
|
|
102
|
-
- `export(format)`
|
|
103
|
-
- `feedback(memory_id, helpful?)`
|
|
104
|
-
|
|
105
|
-
### Resources
|
|
106
|
-
|
|
107
|
-
- `memory/{id}`
|
|
108
|
-
- `memory/search?query=...`
|
|
109
|
-
|
|
110
|
-
### Prompts
|
|
111
|
-
|
|
112
|
-
- `memory_injection(query, token_budget)` → Inject top K related memories summarized
|
|
113
|
-
|
|
114
|
-
## 🔐 Security Model Summary
|
|
115
|
-
|
|
116
|
-
- **M1**: None (local only)
|
|
117
|
-
- **M2**: Single API Key (team shared)
|
|
118
|
-
- **M3**: JWT (user-specific tokens, can integrate with organization account server)
|
|
119
|
-
- **M4**: JWT + RBAC + SSO/LDAP → Enterprise security policy compliance
|
|
120
|
-
|
|
121
|
-
## 📑 Migration Guide Summary
|
|
122
|
-
|
|
123
|
-
1. Extract memory_item.csv from SQLite
|
|
124
|
-
2. Create schema in Postgres (pgvector, tsvector)
|
|
125
|
-
3. CSV import → `\copy`
|
|
126
|
-
4. Recalculate and update embeddings
|
|
127
|
-
5. Replace only DB driver in MCP Memory Server
|
|
128
|
-
|
|
129
|
-
## ✅ Checklist
|
|
130
|
-
|
|
131
|
-
- [ ] Personal SQLite server completed
|
|
132
|
-
- [ ] Team stage Docker deployment + API Key applied
|
|
133
|
-
- [ ] Postgres migration documentation completed
|
|
134
|
-
- [ ] Organization stage JWT authentication integration
|
|
135
|
-
- [ ] Roadmap for SSO/LDAP integration confirmed
|