memento-mcp-server 1.7.5 → 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.
- package/README.md +1 -0
- package/dist/config/environment.d.ts.map +1 -1
- package/dist/config/environment.js +2 -1
- package/dist/config/environment.js.map +1 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +5 -2
- package/dist/config/index.js.map +1 -1
- package/dist/database/init.d.ts.map +1 -1
- package/dist/database/init.js +159 -7
- package/dist/database/init.js.map +1 -1
- package/dist/database/migration/backup-manager.d.ts +55 -0
- package/dist/database/migration/backup-manager.d.ts.map +1 -0
- package/dist/database/migration/backup-manager.js +181 -0
- package/dist/database/migration/backup-manager.js.map +1 -0
- package/dist/database/migration/dependency-validator.d.ts +62 -0
- package/dist/database/migration/dependency-validator.d.ts.map +1 -0
- package/dist/database/migration/dependency-validator.js +260 -0
- package/dist/database/migration/dependency-validator.js.map +1 -0
- package/dist/database/migration/migration-detector.d.ts +67 -0
- package/dist/database/migration/migration-detector.d.ts.map +1 -0
- package/dist/database/migration/migration-detector.js +129 -0
- package/dist/database/migration/migration-detector.js.map +1 -0
- package/dist/database/migration/migration-logger.d.ts +82 -0
- package/dist/database/migration/migration-logger.d.ts.map +1 -0
- package/dist/database/migration/migration-logger.js +168 -0
- package/dist/database/migration/migration-logger.js.map +1 -0
- package/dist/database/migration/migration-runner.d.ts +45 -0
- package/dist/database/migration/migration-runner.d.ts.map +1 -0
- package/dist/database/migration/migration-runner.js +194 -0
- package/dist/database/migration/migration-runner.js.map +1 -0
- package/dist/database/migration/migrations/002-mirix-schema-expansion.d.ts +55 -0
- package/dist/database/migration/migrations/002-mirix-schema-expansion.d.ts.map +1 -0
- package/dist/database/migration/migrations/002-mirix-schema-expansion.js +154 -0
- package/dist/database/migration/migrations/002-mirix-schema-expansion.js.map +1 -0
- package/dist/database/migration/schema-version-manager.d.ts +43 -0
- package/dist/database/migration/schema-version-manager.d.ts.map +1 -0
- package/dist/database/migration/schema-version-manager.js +146 -0
- package/dist/database/migration/schema-version-manager.js.map +1 -0
- package/dist/database/migration/types.d.ts +127 -0
- package/dist/database/migration/types.d.ts.map +1 -0
- package/dist/database/migration/types.js +5 -0
- package/dist/database/migration/types.js.map +1 -0
- package/dist/database/schema.sql +69 -1
- package/dist/npm-client/memento-client.d.ts.map +1 -1
- package/dist/npm-client/memento-client.js +39 -8
- package/dist/npm-client/memento-client.js.map +1 -1
- package/dist/npm-client/types.d.ts +16 -2
- package/dist/npm-client/types.d.ts.map +1 -1
- package/dist/npm-client/types.js.map +1 -1
- package/dist/npm-client/utils.d.ts.map +1 -1
- package/dist/npm-client/utils.js +44 -5
- package/dist/npm-client/utils.js.map +1 -1
- package/dist/repositories/core-memory-repository.d.ts +81 -0
- package/dist/repositories/core-memory-repository.d.ts.map +1 -0
- package/dist/repositories/core-memory-repository.js +263 -0
- package/dist/repositories/core-memory-repository.js.map +1 -0
- package/dist/repositories/knowledge-vault-repository.d.ts +102 -0
- package/dist/repositories/knowledge-vault-repository.d.ts.map +1 -0
- package/dist/repositories/knowledge-vault-repository.js +395 -0
- package/dist/repositories/knowledge-vault-repository.js.map +1 -0
- package/dist/server/http-server.d.ts.map +1 -1
- package/dist/server/http-server.js +66 -1
- package/dist/server/http-server.js.map +1 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +86 -1
- package/dist/server/index.js.map +1 -1
- package/dist/services/cache-service.d.ts.map +1 -1
- package/dist/services/cache-service.js +5 -2
- package/dist/services/cache-service.js.map +1 -1
- package/dist/services/core-memory-cache-service.d.ts +80 -0
- package/dist/services/core-memory-cache-service.d.ts.map +1 -0
- package/dist/services/core-memory-cache-service.js +122 -0
- package/dist/services/core-memory-cache-service.js.map +1 -0
- package/dist/services/core-memory-service.d.ts +117 -0
- package/dist/services/core-memory-service.d.ts.map +1 -0
- package/dist/services/core-memory-service.js +247 -0
- package/dist/services/core-memory-service.js.map +1 -0
- package/dist/services/knowledge-vault-service.d.ts +114 -0
- package/dist/services/knowledge-vault-service.d.ts.map +1 -0
- package/dist/services/knowledge-vault-service.js +233 -0
- package/dist/services/knowledge-vault-service.js.map +1 -0
- package/dist/services/memory-neighbor-service.d.ts +81 -0
- package/dist/services/memory-neighbor-service.d.ts.map +1 -0
- package/dist/services/memory-neighbor-service.js +295 -0
- package/dist/services/memory-neighbor-service.js.map +1 -0
- package/dist/tools/get-memory-neighbors-tool.d.ts +26 -0
- package/dist/tools/get-memory-neighbors-tool.d.ts.map +1 -0
- package/dist/tools/get-memory-neighbors-tool.js +125 -0
- package/dist/tools/get-memory-neighbors-tool.js.map +1 -0
- package/dist/tools/index.d.ts +2 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +4 -2
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/memory-injection-prompt.d.ts.map +1 -1
- package/dist/tools/memory-injection-prompt.js +28 -4
- package/dist/tools/memory-injection-prompt.js.map +1 -1
- package/dist/tools/recall-tool.d.ts.map +1 -1
- package/dist/tools/recall-tool.js +292 -82
- package/dist/tools/recall-tool.js.map +1 -1
- package/dist/tools/remember-tool.d.ts.map +1 -1
- package/dist/tools/remember-tool.js +293 -40
- package/dist/tools/remember-tool.js.map +1 -1
- package/dist/tools/types.d.ts +9 -2
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tools/types.js +11 -2
- package/dist/tools/types.js.map +1 -1
- package/dist/types/index.d.ts +20 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +7 -1
- package/dist/types/index.js.map +1 -1
- package/dist/utils/type-param-validator.d.ts +31 -0
- package/dist/utils/type-param-validator.d.ts.map +1 -0
- package/dist/utils/type-param-validator.js +76 -0
- package/dist/utils/type-param-validator.js.map +1 -0
- package/package.json +1 -1
- package/src/database/schema.sql +69 -1
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* type 파라미터 롤아웃 모드 검증 유틸리티
|
|
3
|
+
*
|
|
4
|
+
* Phase 1 (warn): type 파라미터 없을 시 경고 로그 출력 및 기본값 적용
|
|
5
|
+
* Phase 2 (deprecate): type 파라미터 없을 시 Deprecation 경고 및 기본값 적용
|
|
6
|
+
* Phase 3 (error): type 파라미터 없을 시 에러 발생
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* type 파라미터 검증 및 롤아웃 모드에 따른 처리
|
|
10
|
+
*
|
|
11
|
+
* @param type - 사용자가 제공한 type 파라미터 (없을 수 있음)
|
|
12
|
+
* @param mode - 롤아웃 모드 ('warn' | 'deprecate' | 'error')
|
|
13
|
+
* @param toolName - 도구 이름 (에러 메시지에 사용)
|
|
14
|
+
* @returns 검증 결과 및 기본값
|
|
15
|
+
*/
|
|
16
|
+
export function validateTypeParam(type, mode, toolName = 'tool') {
|
|
17
|
+
// type 파라미터가 제공된 경우
|
|
18
|
+
if (type !== undefined && type !== null && type !== '') {
|
|
19
|
+
return {
|
|
20
|
+
isValid: true,
|
|
21
|
+
mode,
|
|
22
|
+
defaultType: type
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
// type 파라미터가 없는 경우 - 모드에 따라 처리
|
|
26
|
+
const defaultType = 'episodic'; // 기본값
|
|
27
|
+
switch (mode) {
|
|
28
|
+
case 'warn':
|
|
29
|
+
return {
|
|
30
|
+
isValid: true,
|
|
31
|
+
mode: 'warn',
|
|
32
|
+
message: `⚠️ ${toolName}: 'type' 파라미터가 지정되지 않았습니다. 기본값 'episodic'을 사용합니다. 향후 버전에서는 필수 파라미터가 됩니다.`,
|
|
33
|
+
defaultType
|
|
34
|
+
};
|
|
35
|
+
case 'deprecate':
|
|
36
|
+
return {
|
|
37
|
+
isValid: true,
|
|
38
|
+
mode: 'deprecate',
|
|
39
|
+
message: `⚠️ [DEPRECATED] ${toolName}: 'type' 파라미터가 지정되지 않았습니다. 기본값 'episodic'을 사용합니다. 'type' 파라미터는 필수로 지정해주세요. 마이그레이션 가이드: https://github.com/your-repo/memento/blob/main/docs/migration-guide.md`,
|
|
40
|
+
defaultType
|
|
41
|
+
};
|
|
42
|
+
case 'error':
|
|
43
|
+
return {
|
|
44
|
+
isValid: false,
|
|
45
|
+
mode: 'error',
|
|
46
|
+
message: `❌ ${toolName}: 'type' 파라미터는 필수입니다. 'core' | 'episodic' | 'semantic' | 'procedural' | 'vault' | 'working' 중 하나를 지정해주세요.`
|
|
47
|
+
};
|
|
48
|
+
default:
|
|
49
|
+
// 알 수 없는 모드인 경우 warn 모드로 처리
|
|
50
|
+
return {
|
|
51
|
+
isValid: true,
|
|
52
|
+
mode: 'warn',
|
|
53
|
+
message: `⚠️ ${toolName}: 'type' 파라미터가 지정되지 않았습니다. 기본값 'episodic'을 사용합니다.`,
|
|
54
|
+
defaultType
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* 환경 변수에서 롤아웃 모드 읽기
|
|
60
|
+
*
|
|
61
|
+
* @param envValue - 환경 변수 값
|
|
62
|
+
* @returns 유효한 모드 또는 기본값 'warn'
|
|
63
|
+
*/
|
|
64
|
+
export function parseTypeParamMode(envValue) {
|
|
65
|
+
if (!envValue) {
|
|
66
|
+
return 'warn';
|
|
67
|
+
}
|
|
68
|
+
const normalized = envValue.toLowerCase().trim();
|
|
69
|
+
if (normalized === 'warn' || normalized === 'deprecate' || normalized === 'error') {
|
|
70
|
+
return normalized;
|
|
71
|
+
}
|
|
72
|
+
// 유효하지 않은 값인 경우 기본값 반환
|
|
73
|
+
console.warn(`⚠️ Invalid MEMENTO_TYPE_PARAM_MODE value: ${envValue}. Using default 'warn'.`);
|
|
74
|
+
return 'warn';
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=type-param-validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type-param-validator.js","sourceRoot":"","sources":["../../src/utils/type-param-validator.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAWH;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAwB,EACxB,IAAmB,EACnB,WAAmB,MAAM;IAEzB,oBAAoB;IACpB,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;QACvD,OAAO;YACL,OAAO,EAAE,IAAI;YACb,IAAI;YACJ,WAAW,EAAE,IAAI;SAClB,CAAC;IACJ,CAAC;IAED,+BAA+B;IAC/B,MAAM,WAAW,GAAG,UAAU,CAAC,CAAC,MAAM;IAEtC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,MAAM;YACT,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,OAAO,QAAQ,0EAA0E;gBAClG,WAAW;aACZ,CAAC;QAEJ,KAAK,WAAW;YACd,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,oBAAoB,QAAQ,+JAA+J;gBACpM,WAAW;aACZ,CAAC;QAEJ,KAAK,OAAO;YACV,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,KAAK,QAAQ,2GAA2G;aAClI,CAAC;QAEJ;YACE,4BAA4B;YAC5B,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,OAAO,QAAQ,mDAAmD;gBAC3E,WAAW;aACZ,CAAC;IACN,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAA4B;IAC7D,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IACjD,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,WAAW,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;QAClF,OAAO,UAA2B,CAAC;IACrC,CAAC;IAED,uBAAuB;IACvB,OAAO,CAAC,IAAI,CAAC,8CAA8C,QAAQ,yBAAyB,CAAC,CAAC;IAC9F,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/package.json
CHANGED
package/src/database/schema.sql
CHANGED
|
@@ -15,7 +15,12 @@ CREATE TABLE IF NOT EXISTS memory_item (
|
|
|
15
15
|
source TEXT,
|
|
16
16
|
view_count INTEGER DEFAULT 0,
|
|
17
17
|
cite_count INTEGER DEFAULT 0,
|
|
18
|
-
edit_count INTEGER DEFAULT 0
|
|
18
|
+
edit_count INTEGER DEFAULT 0,
|
|
19
|
+
-- MIRIX Schema Expansion (v2.0) 추가 필드
|
|
20
|
+
origin_source TEXT DEFAULT '{}', -- JSON 형식: {"tool": "remember", "caller": "user", "timestamp": "...", "context": {...}}
|
|
21
|
+
task_goal TEXT, -- Procedural Memory 전용, 작업 목표
|
|
22
|
+
steps TEXT, -- Procedural Memory 전용, JSON 배열 형식
|
|
23
|
+
reflection_notes TEXT -- Procedural Memory 전용, JSON 형식
|
|
19
24
|
);
|
|
20
25
|
|
|
21
26
|
-- 태그 테이블
|
|
@@ -229,6 +234,69 @@ CREATE TRIGGER IF NOT EXISTS memory_embedding_vec_delete AFTER DELETE ON memory_
|
|
|
229
234
|
DELETE FROM memory_item_vec_gemini WHERE rowid = OLD.id;
|
|
230
235
|
END;
|
|
231
236
|
|
|
237
|
+
-- Core Memory 테이블 (MIRIX Schema Expansion v2.0)
|
|
238
|
+
-- Core Memory는 에이전트의 핵심 정체성, 지침, 인격 데이터를 저장합니다.
|
|
239
|
+
CREATE TABLE IF NOT EXISTS core_memory (
|
|
240
|
+
core_id TEXT PRIMARY KEY,
|
|
241
|
+
agent_id TEXT NOT NULL DEFAULT 'default',
|
|
242
|
+
key TEXT NOT NULL,
|
|
243
|
+
value TEXT NOT NULL,
|
|
244
|
+
always_load BOOLEAN NOT NULL DEFAULT 0,
|
|
245
|
+
origin_source TEXT DEFAULT '{}', -- JSON 형식
|
|
246
|
+
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
247
|
+
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
248
|
+
UNIQUE(agent_id, key)
|
|
249
|
+
);
|
|
250
|
+
|
|
251
|
+
-- Core Memory 인덱스
|
|
252
|
+
CREATE INDEX IF NOT EXISTS idx_core_memory_agent_id ON core_memory(agent_id);
|
|
253
|
+
CREATE INDEX IF NOT EXISTS idx_core_memory_key ON core_memory(key);
|
|
254
|
+
CREATE INDEX IF NOT EXISTS idx_core_memory_created_at ON core_memory(created_at);
|
|
255
|
+
CREATE INDEX IF NOT EXISTS idx_core_memory_always_load ON core_memory(always_load);
|
|
256
|
+
|
|
257
|
+
-- Core Memory updated_at 자동 업데이트 트리거
|
|
258
|
+
CREATE TRIGGER IF NOT EXISTS core_memory_update_timestamp
|
|
259
|
+
AFTER UPDATE ON core_memory
|
|
260
|
+
BEGIN
|
|
261
|
+
UPDATE core_memory
|
|
262
|
+
SET updated_at = CURRENT_TIMESTAMP
|
|
263
|
+
WHERE core_id = NEW.core_id;
|
|
264
|
+
END;
|
|
265
|
+
|
|
266
|
+
-- Knowledge Vault 테이블 (MIRIX Schema Expansion v2.0)
|
|
267
|
+
-- Knowledge Vault는 변경 불가능한 영구 지식 저장소입니다.
|
|
268
|
+
CREATE TABLE IF NOT EXISTS knowledge_vault (
|
|
269
|
+
vault_id TEXT PRIMARY KEY,
|
|
270
|
+
agent_id TEXT NOT NULL DEFAULT 'default',
|
|
271
|
+
key TEXT NOT NULL,
|
|
272
|
+
value TEXT NOT NULL,
|
|
273
|
+
immutable BOOLEAN NOT NULL DEFAULT 1,
|
|
274
|
+
version INTEGER NOT NULL DEFAULT 1,
|
|
275
|
+
previous_version_id TEXT, -- 이전 버전의 vault_id 참조
|
|
276
|
+
admin_override BOOLEAN NOT NULL DEFAULT 0, -- 향후 관리자 Override 기능용
|
|
277
|
+
deleted_at TIMESTAMP, -- 향후 Soft Delete 기능용
|
|
278
|
+
origin_source TEXT DEFAULT '{}', -- JSON 형식
|
|
279
|
+
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
280
|
+
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
281
|
+
UNIQUE(agent_id, key, version)
|
|
282
|
+
);
|
|
283
|
+
|
|
284
|
+
-- Knowledge Vault 인덱스
|
|
285
|
+
CREATE INDEX IF NOT EXISTS idx_knowledge_vault_agent_id ON knowledge_vault(agent_id);
|
|
286
|
+
CREATE INDEX IF NOT EXISTS idx_knowledge_vault_key ON knowledge_vault(key);
|
|
287
|
+
CREATE INDEX IF NOT EXISTS idx_knowledge_vault_version ON knowledge_vault(version);
|
|
288
|
+
CREATE INDEX IF NOT EXISTS idx_knowledge_vault_deleted_at ON knowledge_vault(deleted_at);
|
|
289
|
+
CREATE INDEX IF NOT EXISTS idx_knowledge_vault_agent_key ON knowledge_vault(agent_id, key);
|
|
290
|
+
|
|
291
|
+
-- Knowledge Vault updated_at 자동 업데이트 트리거
|
|
292
|
+
CREATE TRIGGER IF NOT EXISTS knowledge_vault_update_timestamp
|
|
293
|
+
AFTER UPDATE ON knowledge_vault
|
|
294
|
+
BEGIN
|
|
295
|
+
UPDATE knowledge_vault
|
|
296
|
+
SET updated_at = CURRENT_TIMESTAMP
|
|
297
|
+
WHERE vault_id = NEW.vault_id;
|
|
298
|
+
END;
|
|
299
|
+
|
|
232
300
|
-- 초기 데이터 삽입 (선택사항)
|
|
233
301
|
-- INSERT OR IGNORE INTO memory_item (id, type, content, importance, privacy_scope, pinned)
|
|
234
302
|
-- VALUES ('welcome', 'semantic', 'Memento MCP Server에 오신 것을 환영합니다!', 1.0, 'private', TRUE);
|