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
|
@@ -1,344 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
globs: *.sql,*.ts
|
|
3
|
-
description: 데이터베이스 스키마 및 마이그레이션 규칙
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# 데이터베이스 스키마 규칙
|
|
7
|
-
|
|
8
|
-
## 📋 M1 (SQLite) 스키마
|
|
9
|
-
|
|
10
|
-
### 메인 테이블
|
|
11
|
-
```sql
|
|
12
|
-
-- 기억 아이템 테이블
|
|
13
|
-
CREATE TABLE memory_item (
|
|
14
|
-
id TEXT PRIMARY KEY,
|
|
15
|
-
type TEXT CHECK (type IN ('working','episodic','semantic','procedural')),
|
|
16
|
-
content TEXT NOT NULL,
|
|
17
|
-
importance REAL CHECK (importance >= 0 AND importance <= 1) DEFAULT 0.5,
|
|
18
|
-
privacy_scope TEXT CHECK (privacy_scope IN ('private','team','public')) DEFAULT 'private',
|
|
19
|
-
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
20
|
-
last_accessed TIMESTAMP,
|
|
21
|
-
pinned BOOLEAN DEFAULT FALSE,
|
|
22
|
-
source TEXT,
|
|
23
|
-
agent_id TEXT,
|
|
24
|
-
user_id TEXT,
|
|
25
|
-
project_id TEXT,
|
|
26
|
-
origin_trace TEXT -- JSON 형태
|
|
27
|
-
);
|
|
28
|
-
|
|
29
|
-
-- 임베딩 테이블
|
|
30
|
-
CREATE TABLE memory_embedding (
|
|
31
|
-
memory_id TEXT PRIMARY KEY,
|
|
32
|
-
embedding BLOB, -- 벡터 데이터
|
|
33
|
-
dim INTEGER NOT NULL,
|
|
34
|
-
FOREIGN KEY (memory_id) REFERENCES memory_item(id) ON DELETE CASCADE
|
|
35
|
-
);
|
|
36
|
-
|
|
37
|
-
-- 태그 테이블 (N:N 관계)
|
|
38
|
-
CREATE TABLE memory_tag (
|
|
39
|
-
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
40
|
-
name TEXT UNIQUE NOT NULL
|
|
41
|
-
);
|
|
42
|
-
|
|
43
|
-
-- 기억-태그 관계 테이블
|
|
44
|
-
CREATE TABLE memory_item_tag (
|
|
45
|
-
memory_id TEXT,
|
|
46
|
-
tag_id INTEGER,
|
|
47
|
-
PRIMARY KEY (memory_id, tag_id),
|
|
48
|
-
FOREIGN KEY (memory_id) REFERENCES memory_item(id) ON DELETE CASCADE,
|
|
49
|
-
FOREIGN KEY (tag_id) REFERENCES memory_tag(id) ON DELETE CASCADE
|
|
50
|
-
);
|
|
51
|
-
|
|
52
|
-
-- 기억 간 관계 테이블
|
|
53
|
-
CREATE TABLE memory_link (
|
|
54
|
-
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
55
|
-
source_id TEXT NOT NULL,
|
|
56
|
-
target_id TEXT NOT NULL,
|
|
57
|
-
relation_type TEXT CHECK (relation_type IN ('cause_of', 'derived_from', 'duplicates', 'contradicts')),
|
|
58
|
-
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
59
|
-
FOREIGN KEY (source_id) REFERENCES memory_item(id) ON DELETE CASCADE,
|
|
60
|
-
FOREIGN KEY (target_id) REFERENCES memory_item(id) ON DELETE CASCADE
|
|
61
|
-
);
|
|
62
|
-
|
|
63
|
-
-- 피드백 이벤트 테이블
|
|
64
|
-
CREATE TABLE feedback_event (
|
|
65
|
-
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
66
|
-
memory_id TEXT NOT NULL,
|
|
67
|
-
event_type TEXT CHECK (event_type IN ('used', 'edited', 'neglected', 'helpful', 'not_helpful')),
|
|
68
|
-
score REAL,
|
|
69
|
-
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
70
|
-
FOREIGN KEY (memory_id) REFERENCES memory_item(id) ON DELETE CASCADE
|
|
71
|
-
);
|
|
72
|
-
|
|
73
|
-
-- 작업기억 버퍼 테이블
|
|
74
|
-
CREATE TABLE wm_buffer (
|
|
75
|
-
session_id TEXT PRIMARY KEY,
|
|
76
|
-
items TEXT NOT NULL, -- JSON 형태
|
|
77
|
-
token_budget INTEGER DEFAULT 4000,
|
|
78
|
-
expires_at TIMESTAMP NOT NULL
|
|
79
|
-
);
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
### 인덱스 설정
|
|
83
|
-
```sql
|
|
84
|
-
-- FTS5 텍스트 검색 인덱스
|
|
85
|
-
CREATE VIRTUAL TABLE memory_item_fts USING fts5(
|
|
86
|
-
content,
|
|
87
|
-
content='memory_item',
|
|
88
|
-
content_rowid='rowid'
|
|
89
|
-
);
|
|
90
|
-
|
|
91
|
-
-- VSS 벡터 검색 인덱스 (1536차원)
|
|
92
|
-
CREATE VIRTUAL TABLE memory_item_vss USING vss0(
|
|
93
|
-
embedding(1536)
|
|
94
|
-
);
|
|
95
|
-
|
|
96
|
-
-- 일반 인덱스
|
|
97
|
-
CREATE INDEX idx_memory_item_type ON memory_item(type);
|
|
98
|
-
CREATE INDEX idx_memory_item_created_at ON memory_item(created_at);
|
|
99
|
-
CREATE INDEX idx_memory_item_last_accessed ON memory_item(last_accessed);
|
|
100
|
-
CREATE INDEX idx_memory_item_importance ON memory_item(importance);
|
|
101
|
-
CREATE INDEX idx_memory_item_pinned ON memory_item(pinned);
|
|
102
|
-
CREATE INDEX idx_memory_item_user_id ON memory_item(user_id);
|
|
103
|
-
CREATE INDEX idx_memory_item_project_id ON memory_item(project_id);
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
## 📋 M3+ (PostgreSQL) 스키마
|
|
107
|
-
|
|
108
|
-
### 메인 테이블
|
|
109
|
-
```sql
|
|
110
|
-
-- 기억 아이템 테이블
|
|
111
|
-
CREATE TABLE memory_item (
|
|
112
|
-
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
113
|
-
type TEXT CHECK (type IN ('working','episodic','semantic','procedural')),
|
|
114
|
-
content TEXT NOT NULL,
|
|
115
|
-
importance REAL CHECK (importance >= 0 AND importance <= 1) DEFAULT 0.5,
|
|
116
|
-
privacy_scope TEXT CHECK (privacy_scope IN ('private','team','public')) DEFAULT 'private',
|
|
117
|
-
created_at TIMESTAMPTZ DEFAULT now(),
|
|
118
|
-
last_accessed TIMESTAMPTZ,
|
|
119
|
-
pinned BOOLEAN DEFAULT FALSE,
|
|
120
|
-
source TEXT,
|
|
121
|
-
agent_id TEXT,
|
|
122
|
-
user_id TEXT NOT NULL,
|
|
123
|
-
project_id TEXT,
|
|
124
|
-
origin_trace JSONB,
|
|
125
|
-
-- 자동 생성 컬럼
|
|
126
|
-
content_tsv tsvector GENERATED ALWAYS AS (to_tsvector('english', content)) STORED
|
|
127
|
-
);
|
|
128
|
-
|
|
129
|
-
-- 임베딩 테이블 (pgvector 사용)
|
|
130
|
-
CREATE TABLE memory_embedding (
|
|
131
|
-
memory_id UUID PRIMARY KEY,
|
|
132
|
-
embedding vector(1536), -- pgvector 확장
|
|
133
|
-
FOREIGN KEY (memory_id) REFERENCES memory_item(id) ON DELETE CASCADE
|
|
134
|
-
);
|
|
135
|
-
|
|
136
|
-
-- 태그 테이블
|
|
137
|
-
CREATE TABLE memory_tag (
|
|
138
|
-
id SERIAL PRIMARY KEY,
|
|
139
|
-
name TEXT UNIQUE NOT NULL
|
|
140
|
-
);
|
|
141
|
-
|
|
142
|
-
-- 기억-태그 관계 테이블
|
|
143
|
-
CREATE TABLE memory_item_tag (
|
|
144
|
-
memory_id UUID,
|
|
145
|
-
tag_id INTEGER,
|
|
146
|
-
PRIMARY KEY (memory_id, tag_id),
|
|
147
|
-
FOREIGN KEY (memory_id) REFERENCES memory_item(id) ON DELETE CASCADE,
|
|
148
|
-
FOREIGN KEY (tag_id) REFERENCES memory_tag(id) ON DELETE CASCADE
|
|
149
|
-
);
|
|
150
|
-
|
|
151
|
-
-- 기억 간 관계 테이블
|
|
152
|
-
CREATE TABLE memory_link (
|
|
153
|
-
id SERIAL PRIMARY KEY,
|
|
154
|
-
source_id UUID NOT NULL,
|
|
155
|
-
target_id UUID NOT NULL,
|
|
156
|
-
relation_type TEXT CHECK (relation_type IN ('cause_of', 'derived_from', 'duplicates', 'contradicts')),
|
|
157
|
-
created_at TIMESTAMPTZ DEFAULT now(),
|
|
158
|
-
FOREIGN KEY (source_id) REFERENCES memory_item(id) ON DELETE CASCADE,
|
|
159
|
-
FOREIGN KEY (target_id) REFERENCES memory_item(id) ON DELETE CASCADE
|
|
160
|
-
);
|
|
161
|
-
|
|
162
|
-
-- 피드백 이벤트 테이블
|
|
163
|
-
CREATE TABLE feedback_event (
|
|
164
|
-
id SERIAL PRIMARY KEY,
|
|
165
|
-
memory_id UUID NOT NULL,
|
|
166
|
-
event_type TEXT CHECK (event_type IN ('used', 'edited', 'neglected', 'helpful', 'not_helpful')),
|
|
167
|
-
score REAL,
|
|
168
|
-
created_at TIMESTAMPTZ DEFAULT now(),
|
|
169
|
-
FOREIGN KEY (memory_id) REFERENCES memory_item(id) ON DELETE CASCADE
|
|
170
|
-
);
|
|
171
|
-
|
|
172
|
-
-- 작업기억 버퍼 테이블
|
|
173
|
-
CREATE TABLE wm_buffer (
|
|
174
|
-
session_id TEXT PRIMARY KEY,
|
|
175
|
-
items JSONB NOT NULL,
|
|
176
|
-
token_budget INTEGER DEFAULT 4000,
|
|
177
|
-
expires_at TIMESTAMPTZ NOT NULL
|
|
178
|
-
);
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
### 인덱스 설정
|
|
182
|
-
```sql
|
|
183
|
-
-- pgvector 인덱스
|
|
184
|
-
CREATE INDEX ON memory_embedding USING ivfflat (embedding vector_cosine_ops) WITH (lists = 100);
|
|
185
|
-
|
|
186
|
-
-- GIN 인덱스 (tsvector)
|
|
187
|
-
CREATE INDEX ON memory_item USING GIN (content_tsv);
|
|
188
|
-
|
|
189
|
-
-- 일반 인덱스
|
|
190
|
-
CREATE INDEX idx_memory_item_type ON memory_item(type);
|
|
191
|
-
CREATE INDEX idx_memory_item_created_at ON memory_item(created_at);
|
|
192
|
-
CREATE INDEX idx_memory_item_last_accessed ON memory_item(last_accessed);
|
|
193
|
-
CREATE INDEX idx_memory_item_importance ON memory_item(importance);
|
|
194
|
-
CREATE INDEX idx_memory_item_pinned ON memory_item(pinned);
|
|
195
|
-
CREATE INDEX idx_memory_item_user_id ON memory_item(user_id);
|
|
196
|
-
CREATE INDEX idx_memory_item_project_id ON memory_item(project_id);
|
|
197
|
-
|
|
198
|
-
-- 복합 인덱스
|
|
199
|
-
CREATE INDEX idx_memory_item_user_type ON memory_item(user_id, type);
|
|
200
|
-
CREATE INDEX idx_memory_item_project_type ON memory_item(project_id, type);
|
|
201
|
-
CREATE INDEX idx_memory_item_created_type ON memory_item(created_at, type);
|
|
202
|
-
```
|
|
203
|
-
|
|
204
|
-
## 🔄 마이그레이션 가이드
|
|
205
|
-
|
|
206
|
-
### SQLite → PostgreSQL 마이그레이션
|
|
207
|
-
```typescript
|
|
208
|
-
class DatabaseMigrator {
|
|
209
|
-
async migrateFromSQLite(sqlitePath: string, postgresUrl: string): Promise<void> {
|
|
210
|
-
// 1. SQLite에서 데이터 추출
|
|
211
|
-
const sqliteData = await this.extractSQLiteData(sqlitePath);
|
|
212
|
-
|
|
213
|
-
// 2. PostgreSQL 스키마 생성
|
|
214
|
-
await this.createPostgreSQLSchema(postgresUrl);
|
|
215
|
-
|
|
216
|
-
// 3. 데이터 변환 및 삽입
|
|
217
|
-
await this.transformAndInsertData(sqliteData, postgresUrl);
|
|
218
|
-
|
|
219
|
-
// 4. 임베딩 재계산
|
|
220
|
-
await this.recalculateEmbeddings(postgresUrl);
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
private async extractSQLiteData(sqlitePath: string): Promise<any> {
|
|
224
|
-
// SQLite 데이터 추출 로직
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
private async createPostgreSQLSchema(postgresUrl: string): Promise<void> {
|
|
228
|
-
// PostgreSQL 스키마 생성 로직
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
private async transformAndInsertData(data: any, postgresUrl: string): Promise<void> {
|
|
232
|
-
// 데이터 변환 및 삽입 로직
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
private async recalculateEmbeddings(postgresUrl: string): Promise<void> {
|
|
236
|
-
// 임베딩 재계산 로직
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
```
|
|
240
|
-
|
|
241
|
-
### 마이그레이션 스크립트
|
|
242
|
-
```sql
|
|
243
|
-
-- 1. SQLite 데이터 추출
|
|
244
|
-
.mode csv
|
|
245
|
-
.headers on
|
|
246
|
-
.output memory_items.csv
|
|
247
|
-
SELECT * FROM memory_item;
|
|
248
|
-
|
|
249
|
-
-- 2. PostgreSQL 데이터 삽입
|
|
250
|
-
\copy memory_item FROM 'memory_items.csv' WITH CSV HEADER;
|
|
251
|
-
|
|
252
|
-
-- 3. 임베딩 재계산 (Python 스크립트)
|
|
253
|
-
-- python recalculate_embeddings.py
|
|
254
|
-
```
|
|
255
|
-
|
|
256
|
-
## 🔍 검색 최적화
|
|
257
|
-
|
|
258
|
-
### SQLite 검색 쿼리
|
|
259
|
-
```sql
|
|
260
|
-
-- FTS5 + VSS 결합 검색
|
|
261
|
-
WITH vector_search AS (
|
|
262
|
-
SELECT memory_id, similarity
|
|
263
|
-
FROM memory_item_vss
|
|
264
|
-
WHERE vss_search(embedding, ?)
|
|
265
|
-
ORDER BY similarity DESC
|
|
266
|
-
LIMIT 50
|
|
267
|
-
),
|
|
268
|
-
text_search AS (
|
|
269
|
-
SELECT rowid, rank
|
|
270
|
-
FROM memory_item_fts
|
|
271
|
-
WHERE memory_item_fts MATCH ?
|
|
272
|
-
ORDER BY rank
|
|
273
|
-
LIMIT 50
|
|
274
|
-
)
|
|
275
|
-
SELECT mi.*,
|
|
276
|
-
COALESCE(vs.similarity, 0) as vector_score,
|
|
277
|
-
COALESCE(ts.rank, 0) as text_score
|
|
278
|
-
FROM memory_item mi
|
|
279
|
-
LEFT JOIN vector_search vs ON mi.id = vs.memory_id
|
|
280
|
-
LEFT JOIN text_search ts ON mi.rowid = ts.rowid
|
|
281
|
-
WHERE vs.memory_id IS NOT NULL OR ts.rowid IS NOT NULL
|
|
282
|
-
ORDER BY (vector_score + text_score) DESC;
|
|
283
|
-
```
|
|
284
|
-
|
|
285
|
-
### PostgreSQL 검색 쿼리
|
|
286
|
-
```sql
|
|
287
|
-
-- pgvector + tsvector 결합 검색
|
|
288
|
-
WITH vector_search AS (
|
|
289
|
-
SELECT id, 1 - (embedding <=> ?) as similarity
|
|
290
|
-
FROM memory_embedding
|
|
291
|
-
ORDER BY embedding <=> ?
|
|
292
|
-
LIMIT 50
|
|
293
|
-
),
|
|
294
|
-
text_search AS (
|
|
295
|
-
SELECT id, ts_rank(content_tsv, plainto_tsquery('english', ?)) as rank
|
|
296
|
-
FROM memory_item
|
|
297
|
-
WHERE content_tsv @@ plainto_tsquery('english', ?)
|
|
298
|
-
ORDER BY rank DESC
|
|
299
|
-
LIMIT 50
|
|
300
|
-
)
|
|
301
|
-
SELECT mi.*,
|
|
302
|
-
COALESCE(vs.similarity, 0) as vector_score,
|
|
303
|
-
COALESCE(ts.rank, 0) as text_score
|
|
304
|
-
FROM memory_item mi
|
|
305
|
-
LEFT JOIN vector_search vs ON mi.id = vs.id
|
|
306
|
-
LEFT JOIN text_search ts ON mi.id = ts.id
|
|
307
|
-
WHERE vs.id IS NOT NULL OR ts.id IS NOT NULL
|
|
308
|
-
ORDER BY (vector_score + text_score) DESC;
|
|
309
|
-
```
|
|
310
|
-
|
|
311
|
-
## 🧹 데이터 정리 정책
|
|
312
|
-
|
|
313
|
-
### 망각 정책 구현
|
|
314
|
-
```sql
|
|
315
|
-
-- 소프트 삭제 후보 선정
|
|
316
|
-
CREATE VIEW forget_candidates AS
|
|
317
|
-
SELECT id, type, created_at, last_accessed, importance, pinned,
|
|
318
|
-
CASE
|
|
319
|
-
WHEN type = 'working' AND created_at < now() - interval '2 days' THEN true
|
|
320
|
-
WHEN type = 'episodic' AND created_at < now() - interval '90 days' THEN true
|
|
321
|
-
ELSE false
|
|
322
|
-
END as should_forget
|
|
323
|
-
FROM memory_item
|
|
324
|
-
WHERE pinned = false
|
|
325
|
-
AND (type = 'working' OR type = 'episodic');
|
|
326
|
-
|
|
327
|
-
-- 하드 삭제 실행
|
|
328
|
-
DELETE FROM memory_item
|
|
329
|
-
WHERE id IN (
|
|
330
|
-
SELECT id FROM forget_candidates
|
|
331
|
-
WHERE should_forget = true
|
|
332
|
-
);
|
|
333
|
-
```
|
|
334
|
-
|
|
335
|
-
### 백업 및 복원
|
|
336
|
-
```sql
|
|
337
|
-
-- 백업
|
|
338
|
-
pg_dump -h localhost -U username -d memory_db > backup.sql
|
|
339
|
-
|
|
340
|
-
-- 복원
|
|
341
|
-
psql -h localhost -U username -d memory_db < backup.sql
|
|
342
|
-
```
|
|
343
|
-
|
|
344
|
-
|