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.
- 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/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/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 +282 -106
- 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,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core Memory Service
|
|
3
|
+
* Core Memory에 대한 비즈니스 로직 처리
|
|
4
|
+
*
|
|
5
|
+
* 클린코드 원칙:
|
|
6
|
+
* - 단일 책임 원칙: Core Memory 비즈니스 로직만 담당
|
|
7
|
+
* - 의존성 역전: Repository에 의존
|
|
8
|
+
* - 캐시 연동: always_load=true인 항목은 캐시에 유지
|
|
9
|
+
*/
|
|
10
|
+
import { CoreMemoryRepository, type CoreMemoryRecord } from '../repositories/core-memory-repository.js';
|
|
11
|
+
export interface CoreMemoryCache {
|
|
12
|
+
/**
|
|
13
|
+
* 항목을 캐시에 저장
|
|
14
|
+
*/
|
|
15
|
+
set(key: string, value: CoreMemoryRecord): void;
|
|
16
|
+
/**
|
|
17
|
+
* 캐시에서 항목 조회
|
|
18
|
+
*/
|
|
19
|
+
get(key: string): CoreMemoryRecord | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* 캐시에서 항목 삭제
|
|
22
|
+
*/
|
|
23
|
+
delete(key: string): void;
|
|
24
|
+
/**
|
|
25
|
+
* 캐시 전체 조회 (always_load=true인 항목들)
|
|
26
|
+
*/
|
|
27
|
+
getAll(): CoreMemoryRecord[];
|
|
28
|
+
/**
|
|
29
|
+
* 캐시 무효화
|
|
30
|
+
*/
|
|
31
|
+
clear(): void;
|
|
32
|
+
/**
|
|
33
|
+
* 캐시 크기 반환
|
|
34
|
+
*/
|
|
35
|
+
size(): number;
|
|
36
|
+
}
|
|
37
|
+
export interface CreateCoreMemoryServiceInput {
|
|
38
|
+
agent_id?: string;
|
|
39
|
+
key: string;
|
|
40
|
+
value: string;
|
|
41
|
+
always_load?: boolean;
|
|
42
|
+
origin_source?: string | null;
|
|
43
|
+
}
|
|
44
|
+
export interface UpdateCoreMemoryServiceInput {
|
|
45
|
+
value?: string;
|
|
46
|
+
always_load?: boolean;
|
|
47
|
+
origin_source?: string | null;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Core Memory Service
|
|
51
|
+
*/
|
|
52
|
+
export declare class CoreMemoryService {
|
|
53
|
+
private repository;
|
|
54
|
+
private cache;
|
|
55
|
+
constructor(repository: CoreMemoryRepository, cache?: CoreMemoryCache);
|
|
56
|
+
/**
|
|
57
|
+
* 캐시 서비스 설정
|
|
58
|
+
*/
|
|
59
|
+
setCache(cache: CoreMemoryCache): void;
|
|
60
|
+
/**
|
|
61
|
+
* Core Memory 생성
|
|
62
|
+
*/
|
|
63
|
+
create(input: CreateCoreMemoryServiceInput): Promise<CoreMemoryRecord>;
|
|
64
|
+
/**
|
|
65
|
+
* ID로 Core Memory 조회
|
|
66
|
+
*/
|
|
67
|
+
findById(core_id: string): Promise<CoreMemoryRecord | null>;
|
|
68
|
+
/**
|
|
69
|
+
* agent_id와 key로 Core Memory 조회 (캐시 우선)
|
|
70
|
+
*/
|
|
71
|
+
findByKey(agent_id: string, key: string): Promise<CoreMemoryRecord | null>;
|
|
72
|
+
/**
|
|
73
|
+
* agent_id로 모든 Core Memory 조회
|
|
74
|
+
*/
|
|
75
|
+
findByAgentId(agent_id: string): Promise<CoreMemoryRecord[]>;
|
|
76
|
+
/**
|
|
77
|
+
* always_load=true인 Core Memory 조회 (캐시 우선)
|
|
78
|
+
*/
|
|
79
|
+
findAlwaysLoad(agent_id?: string): Promise<CoreMemoryRecord[]>;
|
|
80
|
+
/**
|
|
81
|
+
* Core Memory 업데이트
|
|
82
|
+
*/
|
|
83
|
+
update(core_id: string, input: UpdateCoreMemoryServiceInput): Promise<CoreMemoryRecord | null>;
|
|
84
|
+
/**
|
|
85
|
+
* agent_id와 key로 Core Memory 업데이트
|
|
86
|
+
*/
|
|
87
|
+
updateByKey(agent_id: string, key: string, input: UpdateCoreMemoryServiceInput): Promise<CoreMemoryRecord | null>;
|
|
88
|
+
/**
|
|
89
|
+
* Core Memory 삭제
|
|
90
|
+
*/
|
|
91
|
+
delete(core_id: string): Promise<boolean>;
|
|
92
|
+
/**
|
|
93
|
+
* agent_id와 key로 Core Memory 삭제
|
|
94
|
+
*/
|
|
95
|
+
deleteByKey(agent_id: string, key: string): Promise<boolean>;
|
|
96
|
+
/**
|
|
97
|
+
* agent_id로 모든 Core Memory 삭제
|
|
98
|
+
*/
|
|
99
|
+
deleteByAgentId(agent_id: string): Promise<number>;
|
|
100
|
+
/**
|
|
101
|
+
* 모든 Core Memory 조회 (관리용)
|
|
102
|
+
*/
|
|
103
|
+
findAll(): Promise<CoreMemoryRecord[]>;
|
|
104
|
+
/**
|
|
105
|
+
* Core Memory 개수 조회
|
|
106
|
+
*/
|
|
107
|
+
count(agent_id?: string): Promise<number>;
|
|
108
|
+
/**
|
|
109
|
+
* 캐시 키 생성
|
|
110
|
+
*/
|
|
111
|
+
private getCacheKey;
|
|
112
|
+
/**
|
|
113
|
+
* 캐시 무효화 및 재로드 (always_load=true인 항목들)
|
|
114
|
+
*/
|
|
115
|
+
reloadCache(agent_id?: string): Promise<void>;
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=core-memory-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core-memory-service.d.ts","sourceRoot":"","sources":["../../src/services/core-memory-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,oBAAoB,EAAE,KAAK,gBAAgB,EAA0D,MAAM,2CAA2C,CAAC;AAEhK,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAEhD;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAAC;IAE/C;;OAEG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1B;;OAEG;IACH,MAAM,IAAI,gBAAgB,EAAE,CAAC;IAE7B;;OAEG;IACH,KAAK,IAAI,IAAI,CAAC;IAEd;;OAEG;IACH,IAAI,IAAI,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,4BAA4B;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAWD;;GAEG;AACH,qBAAa,iBAAiB;IAI1B,OAAO,CAAC,UAAU;IAHpB,OAAO,CAAC,KAAK,CAAgC;gBAGnC,UAAU,EAAE,oBAAoB,EACxC,KAAK,CAAC,EAAE,eAAe;IAKzB;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAItC;;OAEG;IACG,MAAM,CAAC,KAAK,EAAE,4BAA4B,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAkC5E;;OAEG;IACG,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAIjE;;OAEG;IACG,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAoBhF;;OAEG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAIlE;;OAEG;IACG,cAAc,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAwBpE;;OAEG;IACG,MAAM,CACV,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,4BAA4B,GAClC,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IA4BnC;;OAEG;IACG,WAAW,CACf,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,4BAA4B,GAClC,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IA4BnC;;OAEG;IACG,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgB/C;;OAEG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBlE;;OAEG;IACG,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAiBxD;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAI5C;;OAEG;IACG,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI/C;;OAEG;IACH,OAAO,CAAC,WAAW;IAInB;;OAEG;IACG,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAcpD"}
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core Memory Service
|
|
3
|
+
* Core Memory에 대한 비즈니스 로직 처리
|
|
4
|
+
*
|
|
5
|
+
* 클린코드 원칙:
|
|
6
|
+
* - 단일 책임 원칙: Core Memory 비즈니스 로직만 담당
|
|
7
|
+
* - 의존성 역전: Repository에 의존
|
|
8
|
+
* - 캐시 연동: always_load=true인 항목은 캐시에 유지
|
|
9
|
+
*/
|
|
10
|
+
import { CoreMemoryRepository } from '../repositories/core-memory-repository.js';
|
|
11
|
+
/**
|
|
12
|
+
* Core Memory ID 생성 유틸리티
|
|
13
|
+
*/
|
|
14
|
+
function generateCoreId() {
|
|
15
|
+
const timestamp = Date.now();
|
|
16
|
+
const random = Math.random().toString(36).substring(2, 11);
|
|
17
|
+
return `core_${timestamp}_${random}`;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Core Memory Service
|
|
21
|
+
*/
|
|
22
|
+
export class CoreMemoryService {
|
|
23
|
+
repository;
|
|
24
|
+
cache = null;
|
|
25
|
+
constructor(repository, cache) {
|
|
26
|
+
this.repository = repository;
|
|
27
|
+
this.cache = cache || null;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* 캐시 서비스 설정
|
|
31
|
+
*/
|
|
32
|
+
setCache(cache) {
|
|
33
|
+
this.cache = cache;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Core Memory 생성
|
|
37
|
+
*/
|
|
38
|
+
async create(input) {
|
|
39
|
+
const { agent_id = 'default', key, value, always_load = false, origin_source = null } = input;
|
|
40
|
+
// 기존 key가 있는지 확인 (UNIQUE 제약)
|
|
41
|
+
const existing = await this.repository.findByKey(agent_id, key);
|
|
42
|
+
if (existing) {
|
|
43
|
+
throw new Error(`Core memory with key '${key}' already exists for agent '${agent_id}'`);
|
|
44
|
+
}
|
|
45
|
+
const core_id = generateCoreId();
|
|
46
|
+
const record = await this.repository.create({
|
|
47
|
+
core_id,
|
|
48
|
+
agent_id,
|
|
49
|
+
key,
|
|
50
|
+
value,
|
|
51
|
+
always_load,
|
|
52
|
+
origin_source
|
|
53
|
+
});
|
|
54
|
+
// always_load=true인 경우 캐시에 추가
|
|
55
|
+
if (always_load && this.cache) {
|
|
56
|
+
this.cache.set(this.getCacheKey(agent_id, key), record);
|
|
57
|
+
}
|
|
58
|
+
return record;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* ID로 Core Memory 조회
|
|
62
|
+
*/
|
|
63
|
+
async findById(core_id) {
|
|
64
|
+
return this.repository.findById(core_id);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* agent_id와 key로 Core Memory 조회 (캐시 우선)
|
|
68
|
+
*/
|
|
69
|
+
async findByKey(agent_id, key) {
|
|
70
|
+
// 캐시에서 먼저 조회
|
|
71
|
+
if (this.cache) {
|
|
72
|
+
const cached = this.cache.get(this.getCacheKey(agent_id, key));
|
|
73
|
+
if (cached) {
|
|
74
|
+
return cached;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
// 캐시에 없으면 DB에서 조회
|
|
78
|
+
const record = await this.repository.findByKey(agent_id, key);
|
|
79
|
+
// always_load=true이고 캐시에 없으면 캐시에 추가
|
|
80
|
+
if (record && record.always_load && this.cache) {
|
|
81
|
+
this.cache.set(this.getCacheKey(agent_id, key), record);
|
|
82
|
+
}
|
|
83
|
+
return record;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* agent_id로 모든 Core Memory 조회
|
|
87
|
+
*/
|
|
88
|
+
async findByAgentId(agent_id) {
|
|
89
|
+
return this.repository.findByAgentId(agent_id);
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* always_load=true인 Core Memory 조회 (캐시 우선)
|
|
93
|
+
*/
|
|
94
|
+
async findAlwaysLoad(agent_id) {
|
|
95
|
+
// 캐시가 있고 캐시에 데이터가 있으면 캐시에서 조회
|
|
96
|
+
if (this.cache && this.cache.size() > 0) {
|
|
97
|
+
const cached = this.cache.getAll();
|
|
98
|
+
if (agent_id) {
|
|
99
|
+
return cached.filter(record => record.agent_id === agent_id);
|
|
100
|
+
}
|
|
101
|
+
return cached;
|
|
102
|
+
}
|
|
103
|
+
// 캐시가 없거나 비어있으면 DB에서 조회
|
|
104
|
+
const dbItems = await this.repository.findAlwaysLoad(agent_id);
|
|
105
|
+
// 캐시가 있으면 DB에서 조회한 항목들을 캐시에 로드
|
|
106
|
+
if (this.cache) {
|
|
107
|
+
for (const item of dbItems) {
|
|
108
|
+
const cacheKey = this.getCacheKey(item.agent_id, item.key);
|
|
109
|
+
this.cache.set(cacheKey, item);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return dbItems;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Core Memory 업데이트
|
|
116
|
+
*/
|
|
117
|
+
async update(core_id, input) {
|
|
118
|
+
const existing = await this.repository.findById(core_id);
|
|
119
|
+
if (!existing) {
|
|
120
|
+
return null;
|
|
121
|
+
}
|
|
122
|
+
const updated = await this.repository.update(core_id, input);
|
|
123
|
+
if (!updated) {
|
|
124
|
+
return null;
|
|
125
|
+
}
|
|
126
|
+
// 캐시 업데이트
|
|
127
|
+
if (this.cache) {
|
|
128
|
+
const cacheKey = this.getCacheKey(updated.agent_id, updated.key);
|
|
129
|
+
if (updated.always_load) {
|
|
130
|
+
// always_load=true인 경우 캐시에 추가/업데이트
|
|
131
|
+
this.cache.set(cacheKey, updated);
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
// always_load=false로 변경된 경우 캐시에서 제거
|
|
135
|
+
this.cache.delete(cacheKey);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
return updated;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* agent_id와 key로 Core Memory 업데이트
|
|
142
|
+
*/
|
|
143
|
+
async updateByKey(agent_id, key, input) {
|
|
144
|
+
const existing = await this.repository.findByKey(agent_id, key);
|
|
145
|
+
if (!existing) {
|
|
146
|
+
return null;
|
|
147
|
+
}
|
|
148
|
+
const updated = await this.repository.updateByKey(agent_id, key, input);
|
|
149
|
+
if (!updated) {
|
|
150
|
+
return null;
|
|
151
|
+
}
|
|
152
|
+
// 캐시 업데이트
|
|
153
|
+
if (this.cache) {
|
|
154
|
+
const cacheKey = this.getCacheKey(agent_id, key);
|
|
155
|
+
if (updated.always_load) {
|
|
156
|
+
// always_load=true인 경우 캐시에 추가/업데이트
|
|
157
|
+
this.cache.set(cacheKey, updated);
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
// always_load=false로 변경된 경우 캐시에서 제거
|
|
161
|
+
this.cache.delete(cacheKey);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
return updated;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Core Memory 삭제
|
|
168
|
+
*/
|
|
169
|
+
async delete(core_id) {
|
|
170
|
+
const existing = await this.repository.findById(core_id);
|
|
171
|
+
if (!existing) {
|
|
172
|
+
return false;
|
|
173
|
+
}
|
|
174
|
+
const deleted = await this.repository.delete(core_id);
|
|
175
|
+
// 캐시에서도 제거
|
|
176
|
+
if (deleted && this.cache) {
|
|
177
|
+
this.cache.delete(this.getCacheKey(existing.agent_id, existing.key));
|
|
178
|
+
}
|
|
179
|
+
return deleted;
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* agent_id와 key로 Core Memory 삭제
|
|
183
|
+
*/
|
|
184
|
+
async deleteByKey(agent_id, key) {
|
|
185
|
+
const existing = await this.repository.findByKey(agent_id, key);
|
|
186
|
+
if (!existing) {
|
|
187
|
+
return false;
|
|
188
|
+
}
|
|
189
|
+
const deleted = await this.repository.deleteByKey(agent_id, key);
|
|
190
|
+
// 캐시에서도 제거
|
|
191
|
+
if (deleted && this.cache) {
|
|
192
|
+
this.cache.delete(this.getCacheKey(agent_id, key));
|
|
193
|
+
}
|
|
194
|
+
return deleted;
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* agent_id로 모든 Core Memory 삭제
|
|
198
|
+
*/
|
|
199
|
+
async deleteByAgentId(agent_id) {
|
|
200
|
+
const deleted = await this.repository.deleteByAgentId(agent_id);
|
|
201
|
+
// 캐시에서도 제거
|
|
202
|
+
if (deleted > 0 && this.cache) {
|
|
203
|
+
// 캐시에서 해당 agent_id의 항목들 제거
|
|
204
|
+
const cached = this.cache.getAll();
|
|
205
|
+
for (const record of cached) {
|
|
206
|
+
if (record.agent_id === agent_id) {
|
|
207
|
+
this.cache.delete(this.getCacheKey(agent_id, record.key));
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
return deleted;
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* 모든 Core Memory 조회 (관리용)
|
|
215
|
+
*/
|
|
216
|
+
async findAll() {
|
|
217
|
+
return this.repository.findAll();
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Core Memory 개수 조회
|
|
221
|
+
*/
|
|
222
|
+
async count(agent_id) {
|
|
223
|
+
return this.repository.count(agent_id);
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* 캐시 키 생성
|
|
227
|
+
*/
|
|
228
|
+
getCacheKey(agent_id, key) {
|
|
229
|
+
return `${agent_id}:${key}`;
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* 캐시 무효화 및 재로드 (always_load=true인 항목들)
|
|
233
|
+
*/
|
|
234
|
+
async reloadCache(agent_id) {
|
|
235
|
+
if (!this.cache) {
|
|
236
|
+
return;
|
|
237
|
+
}
|
|
238
|
+
// 캐시 클리어
|
|
239
|
+
this.cache.clear();
|
|
240
|
+
// always_load=true인 항목들을 DB에서 조회하여 캐시에 로드
|
|
241
|
+
const alwaysLoadItems = await this.repository.findAlwaysLoad(agent_id);
|
|
242
|
+
for (const item of alwaysLoadItems) {
|
|
243
|
+
this.cache.set(this.getCacheKey(item.agent_id, item.key), item);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
//# sourceMappingURL=core-memory-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core-memory-service.js","sourceRoot":"","sources":["../../src/services/core-memory-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Knowledge Vault Service
|
|
3
|
+
* Knowledge Vault에 대한 비즈니스 로직 처리
|
|
4
|
+
*
|
|
5
|
+
* 클린코드 원칙:
|
|
6
|
+
* - 단일 책임 원칙: Knowledge Vault 비즈니스 로직만 담당
|
|
7
|
+
* - 의존성 역전: Repository에 의존
|
|
8
|
+
* - Immutable 검증: immutable=true인 경우 업데이트/삭제 제한
|
|
9
|
+
* - 버전 관리: 기존 버전을 삭제하지 않고 새 버전 생성
|
|
10
|
+
*/
|
|
11
|
+
import { KnowledgeVaultRepository, type KnowledgeVaultRecord } from '../repositories/knowledge-vault-repository.js';
|
|
12
|
+
export interface CreateKnowledgeVaultServiceInput {
|
|
13
|
+
agent_id?: string;
|
|
14
|
+
key: string;
|
|
15
|
+
value: string;
|
|
16
|
+
immutable?: boolean;
|
|
17
|
+
admin_override?: boolean;
|
|
18
|
+
origin_source?: string | null;
|
|
19
|
+
}
|
|
20
|
+
export interface UpdateKnowledgeVaultServiceInput {
|
|
21
|
+
value?: string;
|
|
22
|
+
immutable?: boolean;
|
|
23
|
+
admin_override?: boolean;
|
|
24
|
+
origin_source?: string | null;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Immutable 데이터 수정 시도 에러
|
|
28
|
+
*/
|
|
29
|
+
export declare class ImmutableDataError extends Error {
|
|
30
|
+
constructor(message: string);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Knowledge Vault Service
|
|
34
|
+
*/
|
|
35
|
+
export declare class KnowledgeVaultService {
|
|
36
|
+
private repository;
|
|
37
|
+
constructor(repository: KnowledgeVaultRepository);
|
|
38
|
+
/**
|
|
39
|
+
* Knowledge Vault 생성
|
|
40
|
+
* 기존 활성 버전이 있으면 새 버전으로 생성 (기존 버전은 유지)
|
|
41
|
+
*/
|
|
42
|
+
create(input: CreateKnowledgeVaultServiceInput): Promise<KnowledgeVaultRecord>;
|
|
43
|
+
/**
|
|
44
|
+
* ID로 Knowledge Vault 조회
|
|
45
|
+
*/
|
|
46
|
+
findById(vault_id: string): Promise<KnowledgeVaultRecord | null>;
|
|
47
|
+
/**
|
|
48
|
+
* agent_id와 key로 활성 버전 조회
|
|
49
|
+
*/
|
|
50
|
+
findActiveByKey(agent_id: string, key: string): Promise<KnowledgeVaultRecord | null>;
|
|
51
|
+
/**
|
|
52
|
+
* agent_id와 key로 특정 버전 조회
|
|
53
|
+
*/
|
|
54
|
+
findByKeyAndVersion(agent_id: string, key: string, version: number): Promise<KnowledgeVaultRecord | null>;
|
|
55
|
+
/**
|
|
56
|
+
* agent_id와 key로 모든 버전 조회
|
|
57
|
+
*/
|
|
58
|
+
findAllVersionsByKey(agent_id: string, key: string): Promise<KnowledgeVaultRecord[]>;
|
|
59
|
+
/**
|
|
60
|
+
* agent_id로 모든 활성 Knowledge Vault 조회
|
|
61
|
+
*/
|
|
62
|
+
findActiveByAgentId(agent_id: string): Promise<KnowledgeVaultRecord[]>;
|
|
63
|
+
/**
|
|
64
|
+
* agent_id로 모든 Knowledge Vault 조회 (삭제된 것 포함)
|
|
65
|
+
*/
|
|
66
|
+
findByAgentId(agent_id: string): Promise<KnowledgeVaultRecord[]>;
|
|
67
|
+
/**
|
|
68
|
+
* Knowledge Vault 업데이트
|
|
69
|
+
* immutable=true인 경우 새 버전으로 생성 (기존 버전은 유지)
|
|
70
|
+
*/
|
|
71
|
+
update(vault_id: string, input: UpdateKnowledgeVaultServiceInput): Promise<KnowledgeVaultRecord>;
|
|
72
|
+
/**
|
|
73
|
+
* agent_id와 key로 활성 버전 업데이트
|
|
74
|
+
* immutable=true인 경우 새 버전으로 생성
|
|
75
|
+
*/
|
|
76
|
+
updateActiveByKey(agent_id: string, key: string, input: UpdateKnowledgeVaultServiceInput): Promise<KnowledgeVaultRecord>;
|
|
77
|
+
/**
|
|
78
|
+
* Knowledge Vault 삭제 (soft delete)
|
|
79
|
+
* immutable=true인 경우 삭제 불가
|
|
80
|
+
*/
|
|
81
|
+
delete(vault_id: string): Promise<boolean>;
|
|
82
|
+
/**
|
|
83
|
+
* agent_id와 key로 활성 버전 삭제 (soft delete)
|
|
84
|
+
*/
|
|
85
|
+
deleteActiveByKey(agent_id: string, key: string): Promise<boolean>;
|
|
86
|
+
/**
|
|
87
|
+
* 하드 삭제 (물리적 삭제, 주의 필요)
|
|
88
|
+
* immutable=true인 경우에도 강제 삭제 가능 (admin 권한 필요)
|
|
89
|
+
*/
|
|
90
|
+
hardDelete(vault_id: string, force?: boolean): Promise<boolean>;
|
|
91
|
+
/**
|
|
92
|
+
* 모든 활성 Knowledge Vault 조회
|
|
93
|
+
*/
|
|
94
|
+
findAllActive(): Promise<KnowledgeVaultRecord[]>;
|
|
95
|
+
/**
|
|
96
|
+
* 모든 Knowledge Vault 조회 (삭제된 것 포함)
|
|
97
|
+
*/
|
|
98
|
+
findAll(): Promise<KnowledgeVaultRecord[]>;
|
|
99
|
+
/**
|
|
100
|
+
* Knowledge Vault 개수 조회
|
|
101
|
+
*/
|
|
102
|
+
count(agent_id?: string, activeOnly?: boolean): Promise<number>;
|
|
103
|
+
/**
|
|
104
|
+
* Immutable 검증
|
|
105
|
+
* immutable=true인 경우 업데이트/삭제 가능 여부 확인
|
|
106
|
+
*/
|
|
107
|
+
canUpdate(record: KnowledgeVaultRecord, admin_override?: boolean): boolean;
|
|
108
|
+
/**
|
|
109
|
+
* Immutable 검증
|
|
110
|
+
* immutable=true인 경우 삭제 가능 여부 확인
|
|
111
|
+
*/
|
|
112
|
+
canDelete(record: KnowledgeVaultRecord, admin_override?: boolean): boolean;
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=knowledge-vault-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge-vault-service.d.ts","sourceRoot":"","sources":["../../src/services/knowledge-vault-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,wBAAwB,EACxB,KAAK,oBAAoB,EAG1B,MAAM,+CAA+C,CAAC;AAEvD,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,gCAAgC;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAWD;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;gBAC/B,OAAO,EAAE,MAAM;CAI5B;AAED;;GAEG;AACH,qBAAa,qBAAqB;IACpB,OAAO,CAAC,UAAU;gBAAV,UAAU,EAAE,wBAAwB;IAExD;;;OAGG;IACG,MAAM,CAAC,KAAK,EAAE,gCAAgC,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAwCpF;;OAEG;IACG,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;IAItE;;OAEG;IACG,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;IAI1F;;OAEG;IACG,mBAAmB,CACvB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;IAIvC;;OAEG;IACG,oBAAoB,CACxB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAIlC;;OAEG;IACG,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAI5E;;OAEG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAItE;;;OAGG;IACG,MAAM,CACV,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,gCAAgC,GACtC,OAAO,CAAC,oBAAoB,CAAC;IAsChC;;;OAGG;IACG,iBAAiB,CACrB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,gCAAgC,GACtC,OAAO,CAAC,oBAAoB,CAAC;IAShC;;;OAGG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBhD;;OAEG;IACG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBxE;;;OAGG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,GAAE,OAAe,GAAG,OAAO,CAAC,OAAO,CAAC;IAgB5E;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAItD;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAIhD;;OAEG;IACG,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,UAAU,GAAE,OAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAI3E;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,oBAAoB,EAAE,cAAc,GAAE,OAAe,GAAG,OAAO;IAOjF;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,oBAAoB,EAAE,cAAc,GAAE,OAAe,GAAG,OAAO;CAMlF"}
|