memento-mcp-server 1.8.0 โ†’ 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/dist/config/environment.d.ts.map +1 -1
  2. package/dist/config/environment.js +2 -1
  3. package/dist/config/environment.js.map +1 -1
  4. package/dist/config/index.d.ts.map +1 -1
  5. package/dist/config/index.js +5 -2
  6. package/dist/config/index.js.map +1 -1
  7. package/dist/database/init.d.ts.map +1 -1
  8. package/dist/database/init.js +159 -7
  9. package/dist/database/init.js.map +1 -1
  10. package/dist/database/migration/backup-manager.d.ts +55 -0
  11. package/dist/database/migration/backup-manager.d.ts.map +1 -0
  12. package/dist/database/migration/backup-manager.js +181 -0
  13. package/dist/database/migration/backup-manager.js.map +1 -0
  14. package/dist/database/migration/dependency-validator.d.ts +62 -0
  15. package/dist/database/migration/dependency-validator.d.ts.map +1 -0
  16. package/dist/database/migration/dependency-validator.js +260 -0
  17. package/dist/database/migration/dependency-validator.js.map +1 -0
  18. package/dist/database/migration/migration-detector.d.ts +67 -0
  19. package/dist/database/migration/migration-detector.d.ts.map +1 -0
  20. package/dist/database/migration/migration-detector.js +129 -0
  21. package/dist/database/migration/migration-detector.js.map +1 -0
  22. package/dist/database/migration/migration-logger.d.ts +82 -0
  23. package/dist/database/migration/migration-logger.d.ts.map +1 -0
  24. package/dist/database/migration/migration-logger.js +168 -0
  25. package/dist/database/migration/migration-logger.js.map +1 -0
  26. package/dist/database/migration/migration-runner.d.ts +45 -0
  27. package/dist/database/migration/migration-runner.d.ts.map +1 -0
  28. package/dist/database/migration/migration-runner.js +194 -0
  29. package/dist/database/migration/migration-runner.js.map +1 -0
  30. package/dist/database/migration/migrations/002-mirix-schema-expansion.d.ts +55 -0
  31. package/dist/database/migration/migrations/002-mirix-schema-expansion.d.ts.map +1 -0
  32. package/dist/database/migration/migrations/002-mirix-schema-expansion.js +154 -0
  33. package/dist/database/migration/migrations/002-mirix-schema-expansion.js.map +1 -0
  34. package/dist/database/migration/schema-version-manager.d.ts +43 -0
  35. package/dist/database/migration/schema-version-manager.d.ts.map +1 -0
  36. package/dist/database/migration/schema-version-manager.js +146 -0
  37. package/dist/database/migration/schema-version-manager.js.map +1 -0
  38. package/dist/database/migration/types.d.ts +127 -0
  39. package/dist/database/migration/types.d.ts.map +1 -0
  40. package/dist/database/migration/types.js +5 -0
  41. package/dist/database/migration/types.js.map +1 -0
  42. package/dist/database/schema.sql +69 -1
  43. package/dist/npm-client/memento-client.d.ts.map +1 -1
  44. package/dist/npm-client/memento-client.js +39 -8
  45. package/dist/npm-client/memento-client.js.map +1 -1
  46. package/dist/npm-client/types.d.ts +16 -2
  47. package/dist/npm-client/types.d.ts.map +1 -1
  48. package/dist/npm-client/types.js.map +1 -1
  49. package/dist/npm-client/utils.d.ts.map +1 -1
  50. package/dist/npm-client/utils.js +44 -5
  51. package/dist/npm-client/utils.js.map +1 -1
  52. package/dist/repositories/core-memory-repository.d.ts +81 -0
  53. package/dist/repositories/core-memory-repository.d.ts.map +1 -0
  54. package/dist/repositories/core-memory-repository.js +263 -0
  55. package/dist/repositories/core-memory-repository.js.map +1 -0
  56. package/dist/repositories/knowledge-vault-repository.d.ts +102 -0
  57. package/dist/repositories/knowledge-vault-repository.d.ts.map +1 -0
  58. package/dist/repositories/knowledge-vault-repository.js +395 -0
  59. package/dist/repositories/knowledge-vault-repository.js.map +1 -0
  60. package/dist/services/core-memory-cache-service.d.ts +80 -0
  61. package/dist/services/core-memory-cache-service.d.ts.map +1 -0
  62. package/dist/services/core-memory-cache-service.js +122 -0
  63. package/dist/services/core-memory-cache-service.js.map +1 -0
  64. package/dist/services/core-memory-service.d.ts +117 -0
  65. package/dist/services/core-memory-service.d.ts.map +1 -0
  66. package/dist/services/core-memory-service.js +247 -0
  67. package/dist/services/core-memory-service.js.map +1 -0
  68. package/dist/services/knowledge-vault-service.d.ts +114 -0
  69. package/dist/services/knowledge-vault-service.d.ts.map +1 -0
  70. package/dist/services/knowledge-vault-service.js +233 -0
  71. package/dist/services/knowledge-vault-service.js.map +1 -0
  72. package/dist/tools/memory-injection-prompt.d.ts.map +1 -1
  73. package/dist/tools/memory-injection-prompt.js +28 -4
  74. package/dist/tools/memory-injection-prompt.js.map +1 -1
  75. package/dist/tools/recall-tool.d.ts.map +1 -1
  76. package/dist/tools/recall-tool.js +292 -82
  77. package/dist/tools/recall-tool.js.map +1 -1
  78. package/dist/tools/remember-tool.d.ts.map +1 -1
  79. package/dist/tools/remember-tool.js +282 -106
  80. package/dist/tools/remember-tool.js.map +1 -1
  81. package/dist/tools/types.d.ts +9 -2
  82. package/dist/tools/types.d.ts.map +1 -1
  83. package/dist/tools/types.js +11 -2
  84. package/dist/tools/types.js.map +1 -1
  85. package/dist/types/index.d.ts +20 -3
  86. package/dist/types/index.d.ts.map +1 -1
  87. package/dist/types/index.js +7 -1
  88. package/dist/types/index.js.map +1 -1
  89. package/dist/utils/type-param-validator.d.ts +31 -0
  90. package/dist/utils/type-param-validator.d.ts.map +1 -0
  91. package/dist/utils/type-param-validator.js +76 -0
  92. package/dist/utils/type-param-validator.js.map +1 -0
  93. package/package.json +1 -1
  94. package/src/database/schema.sql +69 -1
@@ -1 +1 @@
1
- {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../src/config/environment.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAoBH,UAAU,iBAAiB;IACzB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAKD,wBAAgB,UAAU,CACxB,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,iBAAsB,GAC9B,MAAM,GAAG,SAAS,CAuBpB;AAED,wBAAgB,aAAa,CAC3B,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,iBAAsB,GAC9B,MAAM,CAER;AAED,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,iBAAsB,GAC9B,MAAM,GAAG,SAAS,CASpB;AAED,UAAU,oBAAoB;IAC5B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,aAAa,CAC3B,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,oBAAyB,GACjC,MAAM,CAqBR;AAED,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,oBAAyB,GACjC,MAAM,GAAG,SAAS,CAgBpB;AAED,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAM5D,CAAC;AAEF,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE9D"}
1
+ {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../src/config/environment.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAqBH,UAAU,iBAAiB;IACzB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAKD,wBAAgB,UAAU,CACxB,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,iBAAsB,GAC9B,MAAM,GAAG,SAAS,CAuBpB;AAED,wBAAgB,aAAa,CAC3B,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,iBAAsB,GAC9B,MAAM,CAER;AAED,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,iBAAsB,GAC9B,MAAM,GAAG,SAAS,CASpB;AAED,UAAU,oBAAoB;IAC5B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,aAAa,CAC3B,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,oBAAyB,GACjC,MAAM,CAqBR;AAED,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,oBAAyB,GACjC,MAAM,GAAG,SAAS,CAgBpB;AAED,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAM5D,CAAC;AAEF,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE9D"}
@@ -18,7 +18,8 @@ const ENV_DEFAULTS = {
18
18
  FORGET_WORKING_TTL: '48',
19
19
  FORGET_EPISODIC_TTL: '2160',
20
20
  FORGET_SEMANTIC_TTL: '-1',
21
- FORGET_PROCEDURAL_TTL: '-1'
21
+ FORGET_PROCEDURAL_TTL: '-1',
22
+ MEMENTO_TYPE_PARAM_MODE: 'warn'
22
23
  };
23
24
  const toArray = (value) => Array.isArray(value) ? value : value ? [value] : [];
24
25
  export function resolveEnv(key, options = {}) {
@@ -1 +1 @@
1
- {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../src/config/environment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../src/config/environment.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAqB,MAAM,mBAAmB,CAAC;AAqB1E,eAAO,MAAM,aAAa,EAAE,aAmC3B,CAAC;AAGF,eAAO,MAAM,oBAAoB;;;;;;CAMhC,CAAC;AAGF,eAAO,MAAM,WAAW;;;;;CAKvB,CAAC;AAGF,wBAAgB,cAAc,IAAI,IAAI,CAKrC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAqB,MAAM,mBAAmB,CAAC;AAuB1E,eAAO,MAAM,aAAa,EAAE,aAsC3B,CAAC;AAGF,eAAO,MAAM,oBAAoB;;;;;;CAMhC,CAAC;AAGF,eAAO,MAAM,WAAW;;;;;CAKvB,CAAC;AAGF,wBAAgB,cAAc,IAAI,IAAI,CAKrC"}
@@ -4,7 +4,8 @@
4
4
  import { config } from 'dotenv';
5
5
  import { validateConfiguration } from '../utils/configuration-validator.js';
6
6
  import { isValidConfigurationEnvironment } from '../utils/environment-check.js';
7
- import { providerDimensionDefaults, resolveNumber, resolveOptionalNumber, resolveOptionalString, resolveString } from './environment.js';
7
+ import { parseTypeParamMode } from '../utils/type-param-validator.js';
8
+ import { providerDimensionDefaults, resolveNumber, resolveOptionalNumber, resolveOptionalString, resolveString, getRawEnvValue } from './environment.js';
8
9
  // ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ๋กœ๋“œ
9
10
  config();
10
11
  const embeddingProvider = resolveString('EMBEDDING_PROVIDER') || 'minilm';
@@ -39,7 +40,9 @@ export const mementoConfig = {
39
40
  logLevel: resolveString('LOG_LEVEL'),
40
41
  logFile: resolveOptionalString('LOG_FILE'),
41
42
  // ๊ฐœ๋ฐœ ์„ค์ •
42
- nodeEnv: resolveString('NODE_ENV')
43
+ nodeEnv: resolveString('NODE_ENV'),
44
+ // type ํŒŒ๋ผ๋ฏธํ„ฐ ๋กค์•„์›ƒ ๋ชจ๋“œ ์„ค์ • (์•ˆ์ „ํ•œ ํŒŒ์‹ฑ)
45
+ typeParamMode: parseTypeParamMode(getRawEnvValue('MEMENTO_TYPE_PARAM_MODE'))
43
46
  };
44
47
  // ๊ฒ€์ƒ‰ ๋žญํ‚น ๊ฐ€์ค‘์น˜ (Memento-Goals.md ์ฐธ์กฐ)
45
48
  export const searchRankingWeights = {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,+BAA+B,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,EACL,yBAAyB,EACzB,aAAa,EACb,qBAAqB,EACrB,qBAAqB,EACrB,aAAa,EACd,MAAM,kBAAkB,CAAC;AAE1B,WAAW;AACX,MAAM,EAAE,CAAC;AAET,MAAM,iBAAiB,GAAI,aAAa,CAAC,oBAAoB,CAAuB,IAAI,QAAQ,CAAC;AAEjG,MAAM,mBAAmB,GACvB,CAAC,qBAAqB,CAAC,sBAAsB,CAAC;IAC9C,yBAAyB,CAAC,iBAAiB,CAAC;IAC5C,yBAAyB,CAAC,MAAM,CAAW,CAAC;AAE9C,MAAM,CAAC,MAAM,aAAa,GAAkB;IAC1C,YAAY;IACZ,MAAM,EAAE,aAAa,CAAC,SAAS,CAAC;IAEhC,YAAY;IACZ,UAAU,EAAE,aAAa,CAAC,iBAAiB,CAAC;IAC5C,aAAa,EAAE,aAAa,CAAC,oBAAoB,CAAC;IAClD,IAAI,EAAE,aAAa,CAAC,iBAAiB,EAAE,EAAE,YAAY,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;IAElE,SAAS;IACT,iBAAiB;IACjB,YAAY,EAAE,qBAAqB,CAAC,gBAAgB,CAAC;IACrD,WAAW,EAAE,aAAa,CAAC,cAAc,CAAC;IAC1C,YAAY,EAAE,qBAAqB,CAAC,gBAAgB,CAAC;IACrD,WAAW,EAAE,aAAa,CAAC,cAAc,CAAC;IAC1C,mBAAmB;IAEnB,QAAQ;IACR,kBAAkB,EAAE,aAAa,CAAC,sBAAsB,CAAC;IACzD,cAAc,EAAE,aAAa,CAAC,kBAAkB,CAAC;IAEjD,uBAAuB;IACvB,SAAS,EAAE;QACT,OAAO,EAAE,aAAa,CAAC,oBAAoB,CAAC;QAC5C,QAAQ,EAAE,aAAa,CAAC,qBAAqB,CAAC;QAC9C,QAAQ,EAAE,aAAa,CAAC,qBAAqB,CAAC;QAC9C,UAAU,EAAE,aAAa,CAAC,uBAAuB,CAAC;KACnD;IAED,QAAQ;IACR,QAAQ,EAAE,aAAa,CAAC,WAAW,CAAC;IACpC,OAAO,EAAE,qBAAqB,CAAC,UAAU,CAAC;IAE1C,QAAQ;IACR,OAAO,EAAE,aAAa,CAAC,UAAU,CAAC;CACnC,CAAC;AAEF,kCAAkC;AAClC,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,SAAS,EAAE,IAAI;IACf,OAAO,EAAE,IAAI;IACb,UAAU,EAAE,IAAI;IAChB,KAAK,EAAE,IAAI;IACX,mBAAmB,EAAE,IAAI;CAC1B,CAAC;AAEF,WAAW;AACX,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,IAAI,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC;IACpE,IAAI,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC;IAC7C,IAAI,EAAE,CAAC,gBAAgB,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC;IAC1D,OAAO,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,UAAU,CAAC;CAC/C,CAAC;AAEF,SAAS;AACT,MAAM,UAAU,cAAc;IAC5B,IAAI,CAAC,+BAA+B,EAAE,EAAE,CAAC;QACvC,OAAO;IACT,CAAC;IACD,qBAAqB,CAAC,aAAa,CAAC,CAAC;AACvC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/database/init.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAsOtC,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CA0ErE;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAYzD"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/database/init.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AA2OtC,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CA4OrE;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAYzD"}
@@ -6,6 +6,11 @@ import fs, { readFileSync } from 'fs';
6
6
  import { join, dirname } from 'path';
7
7
  import { fileURLToPath } from 'url';
8
8
  import { mementoConfig } from '../config/index.js';
9
+ import { MigrationDetector } from './migration/migration-detector.js';
10
+ import { MigrationRunner } from './migration/migration-runner.js';
11
+ import { CoreMemoryRepository } from '../repositories/core-memory-repository.js';
12
+ import { CoreMemoryService } from '../services/core-memory-service.js';
13
+ import { CoreMemoryCacheService } from '../services/core-memory-cache-service.js';
9
14
  const __filename = fileURLToPath(import.meta.url);
10
15
  const __dirname = dirname(__filename);
11
16
  // MCP ์„œ๋ฒ„์—์„œ๋Š” ๋ชจ๋“  ๋กœ๊ทธ ์ถœ๋ ฅ์„ ์™„์ „ํžˆ ์ฐจ๋‹จ
@@ -206,13 +211,160 @@ export async function initializeDatabase() {
206
211
  catch (error) {
207
212
  console.warn('โš ๏ธ sqlite-vec ํ™•์žฅ ๋กœ๋“œ ์‹คํŒจ (๋ฒกํ„ฐ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ ๋น„ํ™œ์„ฑํ™”):', error);
208
213
  }
209
- // ์Šคํ‚ค๋งˆ ํŒŒ์ผ ์ฝ๊ธฐ ๋ฐ ์‹คํ–‰
210
- const schemaPath = join(__dirname, 'schema.sql');
211
- const schema = readFileSync(schemaPath, 'utf-8');
212
- const vecTablesToRepopulate = ensureLegacySchema(db);
213
- // ์Šคํ‚ค๋งˆ ์‹คํ–‰
214
- db.exec(schema);
215
- populateVecTables(db, vecTablesToRepopulate);
214
+ // ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ž๋™ ์‹คํ–‰ (์Šคํ‚ค๋งˆ ์‹คํ–‰ ์ „์— ํ™•์ธ)
215
+ // ๊ธฐ์กด DB๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์—ฌ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ๋จผ์ € ์‹คํ–‰ํ• ์ง€ ๊ฒฐ์ •
216
+ let isExistingDatabase = false;
217
+ try {
218
+ const existingTables = db.prepare(`
219
+ SELECT name FROM sqlite_master
220
+ WHERE type='table' AND name IN ('memory_item', 'core_memory', 'knowledge_vault')
221
+ `).all();
222
+ isExistingDatabase = existingTables.length > 0;
223
+ }
224
+ catch (error) {
225
+ // ํ…Œ์ด๋ธ” ํ™•์ธ ์‹คํŒจ ์‹œ ์ƒˆ DB๋กœ ๊ฐ„์ฃผ
226
+ isExistingDatabase = false;
227
+ }
228
+ // ๊ธฐ์กด DB๊ฐ€ ์žˆ์œผ๋ฉด ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ๋จผ์ € ์‹คํ–‰
229
+ if (isExistingDatabase) {
230
+ try {
231
+ log('๐Ÿ”„ ๊ธฐ์กด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ์ง€ - ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๋จผ์ € ์‹คํ–‰');
232
+ const detector = new MigrationDetector();
233
+ const detectionResult = await detector.detectPendingMigrations(db);
234
+ if (detectionResult.pendingMigrations.length > 0) {
235
+ log(`๐Ÿ“ฆ ์‹คํ–‰ํ•ด์•ผ ํ•  ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๋ฐœ๊ฒฌ: ${detectionResult.pendingMigrations.length}๊ฐœ`);
236
+ const runner = new MigrationRunner(db);
237
+ const migrations = detectionResult.pendingMigrations.map(d => d.migration);
238
+ const results = await runner.runMigrations(migrations, {
239
+ createBackup: true,
240
+ autoRollback: true,
241
+ validate: true
242
+ });
243
+ const successCount = results.filter(r => r.success).length;
244
+ const failCount = results.filter(r => !r.success).length;
245
+ log(`โœ… ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์™„๋ฃŒ: ์„ฑ๊ณต ${successCount}๊ฐœ, ์‹คํŒจ ${failCount}๊ฐœ`);
246
+ if (failCount > 0) {
247
+ log('โš ๏ธ ์ผ๋ถ€ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์ด ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค. ๋กœ๊ทธ๋ฅผ ํ™•์ธํ•˜์„ธ์š”.');
248
+ const failedMigrations = results.filter(r => !r.success);
249
+ for (const failed of failedMigrations) {
250
+ log(` - ${failed.name} (v${failed.version}): ${failed.error}`);
251
+ }
252
+ }
253
+ }
254
+ else {
255
+ log('โœ… ์‹คํ–‰ํ•ด์•ผ ํ•  ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์ด ์—†์Šต๋‹ˆ๋‹ค.');
256
+ }
257
+ }
258
+ catch (migrationError) {
259
+ log('โš ๏ธ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์‹คํ–‰ ์ค‘ ์˜ค๋ฅ˜ ๋ฐœ์ƒ:', migrationError);
260
+ // ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์‹คํŒจํ•ด๋„ ์„œ๋ฒ„๋Š” ๊ณ„์† ์‹คํ–‰ (๊ธฐ์กด ์Šคํ‚ค๋งˆ ์‚ฌ์šฉ)
261
+ log(' ๊ธฐ์กด ์Šคํ‚ค๋งˆ๋กœ ๊ณ„์† ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.');
262
+ }
263
+ }
264
+ else {
265
+ // ์ƒˆ DB์ธ ๊ฒฝ์šฐ: ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ๋จผ์ € ์ฒดํฌํ•˜์—ฌ schema.sql๊ณผ์˜ ์ถฉ๋Œ ๋ฐฉ์ง€
266
+ // ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์ด ์žˆ์œผ๋ฉด ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์‹คํ–‰ํ•˜๊ณ  schema.sql์€ ์Šคํ‚ต
267
+ // ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์ด ์—†์œผ๋ฉด schema.sql์„ ์‹คํ–‰ (์ตœ์‹  ์Šคํ‚ค๋งˆ ํฌํ•จ)
268
+ log('๐Ÿ“‹ ์ƒˆ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ์ง€ - ์ดˆ๊ธฐํ™” ์ „๋žต ๊ฒฐ์ • ์ค‘...');
269
+ // ์Šคํ‚ค๋งˆ ๋ฒ„์ „ ํ…Œ์ด๋ธ” ๋จผ์ € ์ƒ์„ฑ (๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๊ฐ์ง€์— ํ•„์š”)
270
+ try {
271
+ db.exec(`
272
+ CREATE TABLE IF NOT EXISTS memento_schema_version (
273
+ version TEXT PRIMARY KEY,
274
+ applied_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
275
+ migration_name TEXT NOT NULL,
276
+ checksum TEXT,
277
+ applied_by TEXT DEFAULT 'system',
278
+ description TEXT
279
+ )
280
+ `);
281
+ }
282
+ catch (error) {
283
+ // ์Šคํ‚ค๋งˆ ๋ฒ„์ „ ํ…Œ์ด๋ธ” ์ƒ์„ฑ ์‹คํŒจ๋Š” ๋ฌด์‹œ
284
+ }
285
+ // ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๊ฐ์ง€
286
+ let hasPendingMigrations = false;
287
+ try {
288
+ const detector = new MigrationDetector();
289
+ const detectionResult = await detector.detectPendingMigrations(db);
290
+ hasPendingMigrations = detectionResult.pendingMigrations.length > 0;
291
+ if (hasPendingMigrations) {
292
+ log(`๐Ÿ“ฆ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๋ฐœ๊ฒฌ: ${detectionResult.pendingMigrations.length}๊ฐœ - ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์šฐ์„  ์‹คํ–‰`);
293
+ // ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์‹คํ–‰
294
+ const runner = new MigrationRunner(db);
295
+ const migrations = detectionResult.pendingMigrations.map(d => d.migration);
296
+ const results = await runner.runMigrations(migrations, {
297
+ createBackup: true,
298
+ autoRollback: true,
299
+ validate: true
300
+ });
301
+ const successCount = results.filter(r => r.success).length;
302
+ const failCount = results.filter(r => !r.success).length;
303
+ log(`โœ… ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์™„๋ฃŒ: ์„ฑ๊ณต ${successCount}๊ฐœ, ์‹คํŒจ ${failCount}๊ฐœ`);
304
+ if (failCount > 0) {
305
+ log('โš ๏ธ ์ผ๋ถ€ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์ด ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค. ๋กœ๊ทธ๋ฅผ ํ™•์ธํ•˜์„ธ์š”.');
306
+ const failedMigrations = results.filter(r => !r.success);
307
+ for (const failed of failedMigrations) {
308
+ log(` - ${failed.name} (v${failed.version}): ${failed.error}`);
309
+ }
310
+ }
311
+ // ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์‹คํ–‰ ํ›„ VEC ํ…Œ์ด๋ธ” ์ดˆ๊ธฐํ™”
312
+ populateVecTables(db, []);
313
+ }
314
+ }
315
+ catch (migrationError) {
316
+ log('โš ๏ธ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๊ฐ์ง€/์‹คํ–‰ ์ค‘ ์˜ค๋ฅ˜ ๋ฐœ์ƒ:', migrationError);
317
+ hasPendingMigrations = false; // ์˜ค๋ฅ˜ ๋ฐœ์ƒ ์‹œ schema.sql ์‚ฌ์šฉ
318
+ }
319
+ // ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์ด ์—†๊ฑฐ๋‚˜ ์‹คํŒจํ•œ ๊ฒฝ์šฐ schema.sql ์‹คํ–‰ (์ตœ์‹  ์Šคํ‚ค๋งˆ ํฌํ•จ)
320
+ if (!hasPendingMigrations) {
321
+ log('๐Ÿ“‹ schema.sql ์‹คํ–‰ (์ตœ์‹  ์Šคํ‚ค๋งˆ ์ ์šฉ)');
322
+ const schemaPath = join(__dirname, 'schema.sql');
323
+ const schema = readFileSync(schemaPath, 'utf-8');
324
+ // ์Šคํ‚ค๋งˆ ์‹คํ–‰
325
+ db.exec(schema);
326
+ // VEC ํ…Œ์ด๋ธ” ์ดˆ๊ธฐํ™”
327
+ populateVecTables(db, []);
328
+ // ์ดˆ๊ธฐ ์Šคํ‚ค๋งˆ ๋ฒ„์ „ ๊ธฐ๋ก (schema.sql์ด ์ตœ์‹ ์ด๋ฏ€๋กœ)
329
+ try {
330
+ db.exec(`
331
+ INSERT OR IGNORE INTO memento_schema_version (version, migration_name, description, applied_by)
332
+ VALUES ('2.0', 'initial-schema-v2', 'Initial Memento MCP Server schema (v2.0 with MIRIX)', 'system')
333
+ `);
334
+ }
335
+ catch (error) {
336
+ // ์Šคํ‚ค๋งˆ ๋ฒ„์ „ ๊ธฐ๋ก ์‹คํŒจ๋Š” ๋ฌด์‹œ
337
+ }
338
+ }
339
+ }
340
+ // Core Memory ์ž๋™ ๋กœ๋“œ (always_load=true์ธ ํ•ญ๋ชฉ๋งŒ)
341
+ try {
342
+ log('๐Ÿ”„ Core Memory ์ž๋™ ๋กœ๋“œ ์ค‘...');
343
+ const coreMemoryRepository = new CoreMemoryRepository(db);
344
+ const { getCoreMemoryCache, setCoreMemoryCache } = await import('../services/core-memory-cache-service.js');
345
+ // ์ „์—ญ ์บ์‹œ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ๋ฐ ์„ค์ •
346
+ const coreMemoryCache = getCoreMemoryCache();
347
+ setCoreMemoryCache(coreMemoryCache);
348
+ const coreMemoryService = new CoreMemoryService(coreMemoryRepository, coreMemoryCache);
349
+ // always_load=true์ธ ํ•ญ๋ชฉ ์กฐํšŒ ๋ฐ ์บ์‹œ์— ๋กœ๋“œ
350
+ const alwaysLoadItems = await coreMemoryService.findAlwaysLoad();
351
+ if (alwaysLoadItems.length > 0) {
352
+ log(`๐Ÿ“ฆ Core Memory ์ž๋™ ๋กœ๋“œ: ${alwaysLoadItems.length}๊ฐœ ํ•ญ๋ชฉ`);
353
+ for (const item of alwaysLoadItems) {
354
+ const cacheKey = `${item.agent_id}:${item.key}`;
355
+ coreMemoryCache.set(cacheKey, item);
356
+ }
357
+ log(`โœ… Core Memory ์บ์‹œ ๋กœ๋“œ ์™„๋ฃŒ: ${coreMemoryCache.size()}๊ฐœ ํ•ญ๋ชฉ`);
358
+ }
359
+ else {
360
+ log('โœ… Core Memory ์ž๋™ ๋กœ๋“œํ•  ํ•ญ๋ชฉ์ด ์—†์Šต๋‹ˆ๋‹ค.');
361
+ }
362
+ }
363
+ catch (coreMemoryError) {
364
+ log('โš ๏ธ Core Memory ์ž๋™ ๋กœ๋“œ ์ค‘ ์˜ค๋ฅ˜ ๋ฐœ์ƒ:', coreMemoryError);
365
+ // Core Memory ๋กœ๋“œ ์‹คํŒจํ•ด๋„ ์„œ๋ฒ„๋Š” ๊ณ„์† ์‹คํ–‰
366
+ log(' Core Memory ์—†์ด ๊ณ„์† ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.');
367
+ }
216
368
  log('โœ… ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ดˆ๊ธฐํ™” ์™„๋ฃŒ');
217
369
  log(`๐Ÿ“ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฒฝ๋กœ: ${mementoConfig.dbPath}`);
218
370
  return db;
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/database/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/database/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * ๋ฐฑ์—… ๊ด€๋ฆฌ์ž
3
+ *
4
+ * ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ „ ์ž๋™ ๋ฐฑ์—… ์ƒ์„ฑ ๋ฐ ๋ณต์› ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
5
+ */
6
+ import type Database from 'better-sqlite3';
7
+ /**
8
+ * ๋ฐฑ์—… ์ƒ์„ฑ ๊ฒฐ๊ณผ
9
+ */
10
+ export interface BackupResult {
11
+ /**
12
+ * ๋ฐฑ์—… ํŒŒ์ผ ๊ฒฝ๋กœ
13
+ */
14
+ backupPath: string;
15
+ /**
16
+ * ๋ฐฑ์—… ์ƒ์„ฑ ์‹œ๊ฐ„
17
+ */
18
+ timestamp: Date;
19
+ /**
20
+ * ๋ฐฑ์—… ํŒŒ์ผ ํฌ๊ธฐ (bytes)
21
+ */
22
+ size: number;
23
+ }
24
+ /**
25
+ * ๋ฐฑ์—… ๊ด€๋ฆฌ์ž
26
+ */
27
+ export declare class BackupManager {
28
+ private backupsDir;
29
+ constructor(backupsDir?: string);
30
+ /**
31
+ * ๋ฐฑ์—… ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ
32
+ */
33
+ private ensureBackupsDirectory;
34
+ /**
35
+ * ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐฑ์—… ์ƒ์„ฑ
36
+ */
37
+ createBackup(db: Database.Database, migrationVersion: string): Promise<BackupResult>;
38
+ /**
39
+ * ๋ฐฑ์—… ๋ณต์›
40
+ */
41
+ restoreBackup(backupPath: string, targetDbPath: string): Promise<void>;
42
+ /**
43
+ * ์˜ค๋ž˜๋œ ๋ฐฑ์—… ํŒŒ์ผ ์ •๋ฆฌ (๊ธฐ๋ณธ 30์ผ)
44
+ */
45
+ cleanupOldBackups(retentionDays?: number): Promise<number>;
46
+ /**
47
+ * ์ตœ์‹  ๋ฐฑ์—… ํŒŒ์ผ ์ฐพ๊ธฐ
48
+ */
49
+ findLatestBackup(migrationVersion?: string): string | null;
50
+ /**
51
+ * ๋ฐฑ์—… ๋””๋ ‰ํ† ๋ฆฌ ๊ฒฝ๋กœ ๋ฐ˜ํ™˜
52
+ */
53
+ getBackupsDirectory(): string;
54
+ }
55
+ //# sourceMappingURL=backup-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backup-manager.d.ts","sourceRoot":"","sources":["../../../src/database/migration/backup-manager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAK3C;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,SAAS,EAAE,IAAI,CAAC;IAEhB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,UAAU,CAAS;gBAEf,UAAU,CAAC,EAAE,MAAM;IAO/B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAW9B;;OAEG;IACG,YAAY,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAsD1F;;OAEG;IACG,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB5E;;OAEG;IACG,iBAAiB,CAAC,aAAa,GAAE,MAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAkCpE;;OAEG;IACH,gBAAgB,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IA2B1D;;OAEG;IACH,mBAAmB,IAAI,MAAM;CAG9B"}
@@ -0,0 +1,181 @@
1
+ /**
2
+ * ๋ฐฑ์—… ๊ด€๋ฆฌ์ž
3
+ *
4
+ * ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ „ ์ž๋™ ๋ฐฑ์—… ์ƒ์„ฑ ๋ฐ ๋ณต์› ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
5
+ */
6
+ import fs from 'fs';
7
+ import { join, dirname } from 'path';
8
+ import { mementoConfig } from '../../config/index.js';
9
+ /**
10
+ * ๋ฐฑ์—… ๊ด€๋ฆฌ์ž
11
+ */
12
+ export class BackupManager {
13
+ backupsDir;
14
+ constructor(backupsDir) {
15
+ // ๊ธฐ๋ณธ ๋ฐฑ์—… ๋””๋ ‰ํ† ๋ฆฌ: data/backups
16
+ const dbDir = dirname(mementoConfig.dbPath);
17
+ this.backupsDir = backupsDir || join(dbDir, 'backups');
18
+ this.ensureBackupsDirectory();
19
+ }
20
+ /**
21
+ * ๋ฐฑ์—… ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ
22
+ */
23
+ ensureBackupsDirectory() {
24
+ try {
25
+ if (!fs.existsSync(this.backupsDir)) {
26
+ fs.mkdirSync(this.backupsDir, { recursive: true });
27
+ }
28
+ }
29
+ catch (error) {
30
+ console.error('โŒ ๋ฐฑ์—… ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ ์‹คํŒจ:', error);
31
+ throw error;
32
+ }
33
+ }
34
+ /**
35
+ * ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐฑ์—… ์ƒ์„ฑ
36
+ */
37
+ async createBackup(db, migrationVersion) {
38
+ const timestamp = new Date();
39
+ const timestampStr = timestamp.toISOString().replace(/[:.]/g, '-');
40
+ const backupFileName = `memory-backup-${migrationVersion}-${timestampStr}.db`;
41
+ const backupPath = join(this.backupsDir, backupFileName);
42
+ try {
43
+ // ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํŒŒ์ผ ๊ฒฝ๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ
44
+ const dbPath = db.name || mementoConfig.dbPath;
45
+ // ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ํ†ตํ•œ ๋ฐฑ์—… (๋” ์•ˆ์ •์ )
46
+ if (fs.existsSync(dbPath)) {
47
+ fs.copyFileSync(dbPath, backupPath);
48
+ }
49
+ else {
50
+ // ๋ฉ”๋ชจ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ธ ๊ฒฝ์šฐ backup API ์‚ฌ์šฉ ์‹œ๋„
51
+ try {
52
+ const backup = db.backup(backupPath);
53
+ if (backup && typeof backup.step === 'function') {
54
+ await new Promise((resolve, reject) => {
55
+ backup.step(-1, (err) => {
56
+ if (err) {
57
+ reject(err);
58
+ }
59
+ else {
60
+ resolve();
61
+ }
62
+ });
63
+ });
64
+ if (typeof backup.finish === 'function') {
65
+ backup.finish();
66
+ }
67
+ }
68
+ else {
69
+ throw new Error('๋ฐฑ์—… API๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค');
70
+ }
71
+ }
72
+ catch (backupError) {
73
+ throw new Error(`๋ฐฑ์—… ์ƒ์„ฑ ์‹คํŒจ: ${backupError}`);
74
+ }
75
+ }
76
+ const stats = fs.statSync(backupPath);
77
+ const size = stats.size;
78
+ console.log(`โœ… ๋ฐฑ์—… ์ƒ์„ฑ ์™„๋ฃŒ: ${backupPath} (${(size / 1024 / 1024).toFixed(2)} MB)`);
79
+ return {
80
+ backupPath,
81
+ timestamp,
82
+ size
83
+ };
84
+ }
85
+ catch (error) {
86
+ console.error('โŒ ๋ฐฑ์—… ์ƒ์„ฑ ์‹คํŒจ:', error);
87
+ throw error;
88
+ }
89
+ }
90
+ /**
91
+ * ๋ฐฑ์—… ๋ณต์›
92
+ */
93
+ async restoreBackup(backupPath, targetDbPath) {
94
+ try {
95
+ if (!fs.existsSync(backupPath)) {
96
+ throw new Error(`๋ฐฑ์—… ํŒŒ์ผ์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค: ${backupPath}`);
97
+ }
98
+ // ๊ธฐ์กด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํŒŒ์ผ์ด ์žˆ์œผ๋ฉด ๋ฐฑ์—…
99
+ if (fs.existsSync(targetDbPath)) {
100
+ const oldBackupPath = `${targetDbPath}.old-${Date.now()}`;
101
+ fs.copyFileSync(targetDbPath, oldBackupPath);
102
+ console.log(`๐Ÿ“ฆ ๊ธฐ์กด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐฑ์—…: ${oldBackupPath}`);
103
+ }
104
+ // ๋ฐฑ์—… ํŒŒ์ผ ๋ณต์‚ฌ
105
+ fs.copyFileSync(backupPath, targetDbPath);
106
+ console.log(`โœ… ๋ฐฑ์—… ๋ณต์› ์™„๋ฃŒ: ${targetDbPath}`);
107
+ }
108
+ catch (error) {
109
+ console.error('โŒ ๋ฐฑ์—… ๋ณต์› ์‹คํŒจ:', error);
110
+ throw error;
111
+ }
112
+ }
113
+ /**
114
+ * ์˜ค๋ž˜๋œ ๋ฐฑ์—… ํŒŒ์ผ ์ •๋ฆฌ (๊ธฐ๋ณธ 30์ผ)
115
+ */
116
+ async cleanupOldBackups(retentionDays = 30) {
117
+ try {
118
+ const files = fs.readdirSync(this.backupsDir);
119
+ const now = Date.now();
120
+ const retentionMs = retentionDays * 24 * 60 * 60 * 1000;
121
+ let deletedCount = 0;
122
+ for (const file of files) {
123
+ if (!file.endsWith('.db')) {
124
+ continue;
125
+ }
126
+ const filePath = join(this.backupsDir, file);
127
+ const stats = fs.statSync(filePath);
128
+ const age = now - stats.mtimeMs;
129
+ if (age > retentionMs) {
130
+ fs.unlinkSync(filePath);
131
+ deletedCount++;
132
+ console.log(`๐Ÿ—‘๏ธ ์˜ค๋ž˜๋œ ๋ฐฑ์—… ์‚ญ์ œ: ${file}`);
133
+ }
134
+ }
135
+ if (deletedCount > 0) {
136
+ console.log(`โœ… ๋ฐฑ์—… ์ •๋ฆฌ ์™„๋ฃŒ: ${deletedCount}๊ฐœ ํŒŒ์ผ ์‚ญ์ œ`);
137
+ }
138
+ return deletedCount;
139
+ }
140
+ catch (error) {
141
+ console.error('โŒ ๋ฐฑ์—… ์ •๋ฆฌ ์‹คํŒจ:', error);
142
+ return 0;
143
+ }
144
+ }
145
+ /**
146
+ * ์ตœ์‹  ๋ฐฑ์—… ํŒŒ์ผ ์ฐพ๊ธฐ
147
+ */
148
+ findLatestBackup(migrationVersion) {
149
+ try {
150
+ const files = fs.readdirSync(this.backupsDir);
151
+ const backupFiles = files
152
+ .filter(file => {
153
+ if (!file.endsWith('.db')) {
154
+ return false;
155
+ }
156
+ if (migrationVersion && !file.includes(migrationVersion)) {
157
+ return false;
158
+ }
159
+ return file.startsWith('memory-backup-');
160
+ })
161
+ .map(file => ({
162
+ name: file,
163
+ path: join(this.backupsDir, file),
164
+ mtime: fs.statSync(join(this.backupsDir, file)).mtimeMs
165
+ }))
166
+ .sort((a, b) => b.mtime - a.mtime);
167
+ return backupFiles.length > 0 ? (backupFiles[0]?.path || null) : null;
168
+ }
169
+ catch (error) {
170
+ console.error('โŒ ๋ฐฑ์—… ํŒŒ์ผ ๊ฒ€์ƒ‰ ์‹คํŒจ:', error);
171
+ return null;
172
+ }
173
+ }
174
+ /**
175
+ * ๋ฐฑ์—… ๋””๋ ‰ํ† ๋ฆฌ ๊ฒฝ๋กœ ๋ฐ˜ํ™˜
176
+ */
177
+ getBackupsDirectory() {
178
+ return this.backupsDir;
179
+ }
180
+ }
181
+ //# sourceMappingURL=backup-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backup-manager.js","sourceRoot":"","sources":["../../../src/database/migration/backup-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์˜์กด์„ฑ ๊ฒ€์ฆ ์œ ํ‹ธ๋ฆฌํ‹ฐ
3
+ * ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํ›„ ๊ธฐ์กด ์˜์กด์„ฑ(์™ธ๋ž˜ํ‚ค, ํŠธ๋ฆฌ๊ฑฐ ๋“ฑ)์ด ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•˜๋Š”์ง€ ๊ฒ€์ฆ
4
+ */
5
+ import type Database from 'better-sqlite3';
6
+ export interface DependencyValidationResult {
7
+ /**
8
+ * ๊ฒ€์ฆ ํ•ญ๋ชฉ ์ด๋ฆ„
9
+ */
10
+ name: string;
11
+ /**
12
+ * ๊ฒ€์ฆ ์„ฑ๊ณต ์—ฌ๋ถ€
13
+ */
14
+ success: boolean;
15
+ /**
16
+ * ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ (์‹คํŒจ ์‹œ)
17
+ */
18
+ error?: string;
19
+ /**
20
+ * ๊ฒ€์ฆ ์ƒ์„ธ ์ •๋ณด
21
+ */
22
+ details?: Record<string, any>;
23
+ }
24
+ /**
25
+ * ์˜์กด์„ฑ ๊ฒ€์ฆ ๊ฒฐ๊ณผ
26
+ */
27
+ export interface DependencyValidationReport {
28
+ /**
29
+ * ์ „์ฒด ๊ฒ€์ฆ ์„ฑ๊ณต ์—ฌ๋ถ€
30
+ */
31
+ success: boolean;
32
+ /**
33
+ * ๊ฒ€์ฆ ๊ฒฐ๊ณผ ๋ชฉ๋ก
34
+ */
35
+ results: DependencyValidationResult[];
36
+ /**
37
+ * ์‹คํŒจํ•œ ๊ฒ€์ฆ ๊ฐœ์ˆ˜
38
+ */
39
+ failureCount: number;
40
+ }
41
+ /**
42
+ * ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์˜์กด์„ฑ ๊ฒ€์ฆ๊ธฐ
43
+ */
44
+ export declare class DependencyValidator {
45
+ /**
46
+ * ๋ชจ๋“  ์˜์กด์„ฑ ๊ฒ€์ฆ ์ˆ˜ํ–‰
47
+ */
48
+ static validateAll(db: Database.Database): Promise<DependencyValidationReport>;
49
+ /**
50
+ * memory_embedding ํ…Œ์ด๋ธ”์˜ ์™ธ๋ž˜ํ‚ค ๊ฒ€์ฆ
51
+ */
52
+ static validateMemoryEmbeddingForeignKey(db: Database.Database): Promise<DependencyValidationResult>;
53
+ /**
54
+ * FTS5 ํŠธ๋ฆฌ๊ฑฐ ๊ฒ€์ฆ
55
+ */
56
+ static validateFTS5Triggers(db: Database.Database): Promise<DependencyValidationResult>;
57
+ /**
58
+ * VEC ํŠธ๋ฆฌ๊ฑฐ ๊ฒ€์ฆ
59
+ */
60
+ static validateVECTriggers(db: Database.Database): Promise<DependencyValidationResult>;
61
+ }
62
+ //# sourceMappingURL=dependency-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependency-validator.d.ts","sourceRoot":"","sources":["../../../src/database/migration/dependency-validator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,MAAM,WAAW,0BAA0B;IACzC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,OAAO,EAAE,0BAA0B,EAAE,CAAC;IAEtC;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,qBAAa,mBAAmB;IAC9B;;OAEG;WACU,WAAW,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAqBpF;;OAEG;WACU,iCAAiC,CAC5C,EAAE,EAAE,QAAQ,CAAC,QAAQ,GACpB,OAAO,CAAC,0BAA0B,CAAC;IAmFtC;;OAEG;WACU,oBAAoB,CAC/B,EAAE,EAAE,QAAQ,CAAC,QAAQ,GACpB,OAAO,CAAC,0BAA0B,CAAC;IAmEtC;;OAEG;WACU,mBAAmB,CAC9B,EAAE,EAAE,QAAQ,CAAC,QAAQ,GACpB,OAAO,CAAC,0BAA0B,CAAC;CAqGvC"}