memento-mcp-server 1.11.1 → 1.12.0-a
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.en.md +21 -6
- package/README.md +38 -7
- package/dist/algorithms/hybrid-search-engine.d.ts +34 -1
- package/dist/algorithms/hybrid-search-engine.d.ts.map +1 -1
- package/dist/algorithms/hybrid-search-engine.js +186 -17
- package/dist/algorithms/hybrid-search-engine.js.map +1 -1
- package/dist/algorithms/search-ranking.d.ts +15 -1
- package/dist/algorithms/search-ranking.d.ts.map +1 -1
- package/dist/algorithms/search-ranking.js +41 -4
- package/dist/algorithms/search-ranking.js.map +1 -1
- package/dist/config/environment.d.ts.map +1 -1
- package/dist/config/environment.js +4 -0
- package/dist/config/environment.js.map +1 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +6 -0
- package/dist/config/index.js.map +1 -1
- package/dist/config/ranking-weights-loader.d.ts +37 -0
- package/dist/config/ranking-weights-loader.d.ts.map +1 -0
- package/dist/config/ranking-weights-loader.js +109 -0
- package/dist/config/ranking-weights-loader.js.map +1 -0
- package/dist/constants/relation-constants.d.ts +95 -0
- package/dist/constants/relation-constants.d.ts.map +1 -0
- package/dist/constants/relation-constants.js +95 -0
- package/dist/constants/relation-constants.js.map +1 -0
- package/dist/database/migration/migrations/005-relation-engine-schema.d.ts +65 -0
- package/dist/database/migration/migrations/005-relation-engine-schema.d.ts.map +1 -0
- package/dist/database/migration/migrations/005-relation-engine-schema.js +295 -0
- package/dist/database/migration/migrations/005-relation-engine-schema.js.map +1 -0
- package/dist/database/migration/migrations/005-relation-engine-schema.sql +64 -0
- package/dist/services/anchor/anchor-interfaces.d.ts +1 -0
- package/dist/services/anchor/anchor-interfaces.d.ts.map +1 -1
- package/dist/services/anchor/anchor-interfaces.js.map +1 -1
- package/dist/services/anchor/anchor-search-service.d.ts +16 -0
- package/dist/services/anchor/anchor-search-service.d.ts.map +1 -1
- package/dist/services/anchor/anchor-search-service.js +136 -17
- package/dist/services/anchor/anchor-search-service.js.map +1 -1
- package/dist/services/batch-scheduler.d.ts +11 -0
- package/dist/services/batch-scheduler.d.ts.map +1 -1
- package/dist/services/batch-scheduler.js +99 -0
- package/dist/services/batch-scheduler.js.map +1 -1
- package/dist/services/llm-based-relation-extractor.d.ts +156 -0
- package/dist/services/llm-based-relation-extractor.d.ts.map +1 -0
- package/dist/services/llm-based-relation-extractor.js +1350 -0
- package/dist/services/llm-based-relation-extractor.js.map +1 -0
- package/dist/services/relation-extractor.d.ts +73 -0
- package/dist/services/relation-extractor.d.ts.map +1 -0
- package/dist/services/relation-extractor.js +231 -0
- package/dist/services/relation-extractor.js.map +1 -0
- package/dist/services/relation-graph.d.ts +275 -0
- package/dist/services/relation-graph.d.ts.map +1 -0
- package/dist/services/relation-graph.js +869 -0
- package/dist/services/relation-graph.js.map +1 -0
- package/dist/services/relation-quality-validator.d.ts +211 -0
- package/dist/services/relation-quality-validator.d.ts.map +1 -0
- package/dist/services/relation-quality-validator.js +415 -0
- package/dist/services/relation-quality-validator.js.map +1 -0
- package/dist/services/rule-based-relation-extractor.d.ts +66 -0
- package/dist/services/rule-based-relation-extractor.d.ts.map +1 -0
- package/dist/services/rule-based-relation-extractor.js +258 -0
- package/dist/services/rule-based-relation-extractor.js.map +1 -0
- package/dist/tools/add-relation-tool.d.ts +34 -0
- package/dist/tools/add-relation-tool.d.ts.map +1 -0
- package/dist/tools/add-relation-tool.js +163 -0
- package/dist/tools/add-relation-tool.js.map +1 -0
- package/dist/tools/extract-relations-tool.d.ts +28 -0
- package/dist/tools/extract-relations-tool.d.ts.map +1 -0
- package/dist/tools/extract-relations-tool.js +159 -0
- package/dist/tools/extract-relations-tool.js.map +1 -0
- package/dist/tools/get-relations-tool.d.ts +34 -0
- package/dist/tools/get-relations-tool.d.ts.map +1 -0
- package/dist/tools/get-relations-tool.js +155 -0
- package/dist/tools/get-relations-tool.js.map +1 -0
- package/dist/tools/index.d.ts +6 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +16 -2
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/remember-tool.d.ts +17 -0
- package/dist/tools/remember-tool.d.ts.map +1 -1
- package/dist/tools/remember-tool.js +195 -26
- package/dist/tools/remember-tool.js.map +1 -1
- package/dist/tools/remove-relation-tool.d.ts +45 -0
- package/dist/tools/remove-relation-tool.d.ts.map +1 -0
- package/dist/tools/remove-relation-tool.js +142 -0
- package/dist/tools/remove-relation-tool.js.map +1 -0
- package/dist/tools/search-local-tool.d.ts.map +1 -1
- package/dist/tools/search-local-tool.js +10 -3
- package/dist/tools/search-local-tool.js.map +1 -1
- package/dist/tools/types.d.ts +2 -0
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tools/types.js.map +1 -1
- package/dist/tools/visualize-relations-tool.d.ts +46 -0
- package/dist/tools/visualize-relations-tool.d.ts.map +1 -0
- package/dist/tools/visualize-relations-tool.js +157 -0
- package/dist/tools/visualize-relations-tool.js.map +1 -0
- package/dist/types/index.d.ts +8 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/relation-graph.d.ts +215 -0
- package/dist/types/relation-graph.d.ts.map +1 -0
- package/dist/types/relation-graph.js +6 -0
- package/dist/types/relation-graph.js.map +1 -0
- package/dist/types/relation.d.ts +112 -0
- package/dist/types/relation.d.ts.map +1 -0
- package/dist/types/relation.js +67 -0
- package/dist/types/relation.js.map +1 -0
- package/dist/utils/cache-key-generator.d.ts +63 -0
- package/dist/utils/cache-key-generator.d.ts.map +1 -0
- package/dist/utils/cache-key-generator.js +76 -0
- package/dist/utils/cache-key-generator.js.map +1 -0
- package/dist/utils/database.d.ts.map +1 -1
- package/dist/utils/database.js +37 -17
- package/dist/utils/database.js.map +1 -1
- package/dist/utils/relation-visualizer.d.ts +81 -0
- package/dist/utils/relation-visualizer.d.ts.map +1 -0
- package/dist/utils/relation-visualizer.js +239 -0
- package/dist/utils/relation-visualizer.js.map +1 -0
- package/dist/utils/type-guards.d.ts +100 -0
- package/dist/utils/type-guards.d.ts.map +1 -0
- package/dist/utils/type-guards.js +144 -0
- package/dist/utils/type-guards.js.map +1 -0
- package/package.json +7 -2
- package/scripts/generate-relation-report.ts +481 -0
- package/scripts/weekly-relation-validation.ts +423 -0
package/dist/tools/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAgExB;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,2BAA2B,CAAC;IACxD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,yBAAyB,CAAC,CAAC,QAAQ,EAAE,EAAE,eAAe;IACjF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,uBAAuB,CAAC;IACjD,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACtF,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACnD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACpC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC5C,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACpC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACtC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;IAC7C,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;IAC9C,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;IACpD,oCAAoC;IACpC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,qBAAqB,CAAC;IAC7C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,uBAAuB,CAAC;IACjD,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;IACjD,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;IAC/C,wBAAwB;IACxB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,cAAc;IAC5C,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,cAAc;CACvD,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Visualize Relations Tool - 관계 그래프 시각화 도구
|
|
3
|
+
* 메모리 간의 관계를 시각화합니다.
|
|
4
|
+
*/
|
|
5
|
+
import { z } from 'zod';
|
|
6
|
+
import { BaseTool } from './base-tool.js';
|
|
7
|
+
import type { ToolContext, ToolResult } from './types.js';
|
|
8
|
+
declare const VisualizeRelationsSchema: z.ZodObject<{
|
|
9
|
+
memory_id: z.ZodString;
|
|
10
|
+
max_depth: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
11
|
+
format: z.ZodDefault<z.ZodOptional<z.ZodEnum<["text", "subgraph", "simple", "json"]>>>;
|
|
12
|
+
min_confidence: z.ZodOptional<z.ZodNumber>;
|
|
13
|
+
relation_types: z.ZodOptional<z.ZodArray<z.ZodEnum<["CAUSES", "DEPENDS_ON", "FOLLOWS", "CONTRASTS_WITH", "REFERENCES", "BELONGS_TO"]>, "many">>;
|
|
14
|
+
show_memory_ids: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
15
|
+
show_confidence: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
16
|
+
show_relation_types: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
17
|
+
}, "strip", z.ZodTypeAny, {
|
|
18
|
+
memory_id: string;
|
|
19
|
+
max_depth: number;
|
|
20
|
+
format: "text" | "json" | "simple" | "subgraph";
|
|
21
|
+
show_memory_ids: boolean;
|
|
22
|
+
show_confidence: boolean;
|
|
23
|
+
show_relation_types: boolean;
|
|
24
|
+
min_confidence?: number | undefined;
|
|
25
|
+
relation_types?: ("CAUSES" | "DEPENDS_ON" | "FOLLOWS" | "CONTRASTS_WITH" | "REFERENCES" | "BELONGS_TO")[] | undefined;
|
|
26
|
+
}, {
|
|
27
|
+
memory_id: string;
|
|
28
|
+
max_depth?: number | undefined;
|
|
29
|
+
format?: "text" | "json" | "simple" | "subgraph" | undefined;
|
|
30
|
+
min_confidence?: number | undefined;
|
|
31
|
+
relation_types?: ("CAUSES" | "DEPENDS_ON" | "FOLLOWS" | "CONTRASTS_WITH" | "REFERENCES" | "BELONGS_TO")[] | undefined;
|
|
32
|
+
show_memory_ids?: boolean | undefined;
|
|
33
|
+
show_confidence?: boolean | undefined;
|
|
34
|
+
show_relation_types?: boolean | undefined;
|
|
35
|
+
}>;
|
|
36
|
+
export declare class VisualizeRelationsTool extends BaseTool {
|
|
37
|
+
constructor();
|
|
38
|
+
/**
|
|
39
|
+
* Given: memory_id, max_depth, format, 옵션들
|
|
40
|
+
* When: 관계 그래프 시각화 수행
|
|
41
|
+
* Then: 시각화된 텍스트 반환
|
|
42
|
+
*/
|
|
43
|
+
handle(params: z.infer<typeof VisualizeRelationsSchema>, context: ToolContext): Promise<ToolResult>;
|
|
44
|
+
}
|
|
45
|
+
export {};
|
|
46
|
+
//# sourceMappingURL=visualize-relations-tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"visualize-relations-tool.d.ts","sourceRoot":"","sources":["../../src/tools/visualize-relations-tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAK1D,QAAA,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS5B,CAAC;AAEH,qBAAa,sBAAuB,SAAQ,QAAQ;;IA4DlD;;;;OAIG;IACG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;CAgG1G"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Visualize Relations Tool - 관계 그래프 시각화 도구
|
|
3
|
+
* 메모리 간의 관계를 시각화합니다.
|
|
4
|
+
*/
|
|
5
|
+
import { z } from 'zod';
|
|
6
|
+
import { BaseTool } from './base-tool.js';
|
|
7
|
+
import { DatabaseUtils } from '../utils/database.js';
|
|
8
|
+
import { RelationGraph } from '../services/relation-graph.js';
|
|
9
|
+
import { RelationVisualizer } from '../utils/relation-visualizer.js';
|
|
10
|
+
const VisualizeRelationsSchema = z.object({
|
|
11
|
+
memory_id: z.string().min(1, 'memory_id는 필수입니다'),
|
|
12
|
+
max_depth: z.number().int().min(1).max(5).optional().default(2).describe('최대 깊이 (1~5, 기본값: 2)'),
|
|
13
|
+
format: z.enum(['text', 'subgraph', 'simple', 'json']).optional().default('subgraph').describe('시각화 형식 (text, subgraph, simple, json, 기본값: subgraph)'),
|
|
14
|
+
min_confidence: z.number().min(0).max(1).optional().describe('최소 신뢰도 (0.0~1.0)'),
|
|
15
|
+
relation_types: z.array(z.enum(['CAUSES', 'DEPENDS_ON', 'FOLLOWS', 'CONTRASTS_WITH', 'REFERENCES', 'BELONGS_TO'])).optional().describe('관계 유형 필터'),
|
|
16
|
+
show_memory_ids: z.boolean().optional().default(true).describe('메모리 ID 표시 여부 (기본값: true)'),
|
|
17
|
+
show_confidence: z.boolean().optional().default(true).describe('신뢰도 표시 여부 (기본값: true)'),
|
|
18
|
+
show_relation_types: z.boolean().optional().default(true).describe('관계 유형 표시 여부 (기본값: true)')
|
|
19
|
+
});
|
|
20
|
+
export class VisualizeRelationsTool extends BaseTool {
|
|
21
|
+
constructor() {
|
|
22
|
+
super('visualize_relations', '메모리 간의 관계를 시각화합니다. text, subgraph, simple, json 형식을 지원합니다.', {
|
|
23
|
+
type: 'object',
|
|
24
|
+
properties: {
|
|
25
|
+
memory_id: {
|
|
26
|
+
type: 'string',
|
|
27
|
+
description: '중심 메모리 ID'
|
|
28
|
+
},
|
|
29
|
+
max_depth: {
|
|
30
|
+
type: 'number',
|
|
31
|
+
minimum: 1,
|
|
32
|
+
maximum: 5,
|
|
33
|
+
description: '최대 깊이 (1~5, 기본값: 2)',
|
|
34
|
+
default: 2
|
|
35
|
+
},
|
|
36
|
+
format: {
|
|
37
|
+
type: 'string',
|
|
38
|
+
enum: ['text', 'subgraph', 'simple', 'json'],
|
|
39
|
+
description: '시각화 형식 (text, subgraph, simple, json, 기본값: subgraph)',
|
|
40
|
+
default: 'subgraph'
|
|
41
|
+
},
|
|
42
|
+
min_confidence: {
|
|
43
|
+
type: 'number',
|
|
44
|
+
minimum: 0,
|
|
45
|
+
maximum: 1,
|
|
46
|
+
description: '최소 신뢰도 (0.0~1.0)'
|
|
47
|
+
},
|
|
48
|
+
relation_types: {
|
|
49
|
+
type: 'array',
|
|
50
|
+
items: {
|
|
51
|
+
type: 'string',
|
|
52
|
+
enum: ['CAUSES', 'DEPENDS_ON', 'FOLLOWS', 'CONTRASTS_WITH', 'REFERENCES', 'BELONGS_TO']
|
|
53
|
+
},
|
|
54
|
+
description: '관계 유형 필터'
|
|
55
|
+
},
|
|
56
|
+
show_memory_ids: {
|
|
57
|
+
type: 'boolean',
|
|
58
|
+
description: '메모리 ID 표시 여부 (기본값: true)',
|
|
59
|
+
default: true
|
|
60
|
+
},
|
|
61
|
+
show_confidence: {
|
|
62
|
+
type: 'boolean',
|
|
63
|
+
description: '신뢰도 표시 여부 (기본값: true)',
|
|
64
|
+
default: true
|
|
65
|
+
},
|
|
66
|
+
show_relation_types: {
|
|
67
|
+
type: 'boolean',
|
|
68
|
+
description: '관계 유형 표시 여부 (기본값: true)',
|
|
69
|
+
default: true
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
required: ['memory_id']
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Given: memory_id, max_depth, format, 옵션들
|
|
77
|
+
* When: 관계 그래프 시각화 수행
|
|
78
|
+
* Then: 시각화된 텍스트 반환
|
|
79
|
+
*/
|
|
80
|
+
async handle(params, context) {
|
|
81
|
+
const parsed = VisualizeRelationsSchema.parse(params);
|
|
82
|
+
const db = context.db;
|
|
83
|
+
try {
|
|
84
|
+
// Given: 메모리 존재 확인
|
|
85
|
+
const memory = DatabaseUtils.get(db, `
|
|
86
|
+
SELECT id FROM memory_item WHERE id = ?
|
|
87
|
+
`, [parsed.memory_id]);
|
|
88
|
+
if (!memory) {
|
|
89
|
+
return {
|
|
90
|
+
content: [{
|
|
91
|
+
type: 'text',
|
|
92
|
+
text: JSON.stringify({
|
|
93
|
+
success: false,
|
|
94
|
+
error: 'MEMORY_NOT_FOUND',
|
|
95
|
+
message: `메모리를 찾을 수 없습니다: ${parsed.memory_id}`
|
|
96
|
+
}, null, 2)
|
|
97
|
+
}]
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
// RelationGraph 인스턴스 생성 (context에 없으면 새로 생성)
|
|
101
|
+
const relationGraph = context.services.relationGraph || new RelationGraph(db);
|
|
102
|
+
// When: 관계 조회
|
|
103
|
+
const relations = await relationGraph.getRelations(parsed.memory_id, {
|
|
104
|
+
direction: 'both',
|
|
105
|
+
relationTypes: parsed.relation_types,
|
|
106
|
+
minConfidence: parsed.min_confidence
|
|
107
|
+
});
|
|
108
|
+
// 시각화 옵션 준비
|
|
109
|
+
const visualizationOptions = {
|
|
110
|
+
maxDepth: parsed.max_depth,
|
|
111
|
+
minConfidence: parsed.min_confidence,
|
|
112
|
+
relationTypes: parsed.relation_types,
|
|
113
|
+
showMemoryIds: parsed.show_memory_ids,
|
|
114
|
+
showConfidence: parsed.show_confidence,
|
|
115
|
+
showRelationTypes: parsed.show_relation_types
|
|
116
|
+
};
|
|
117
|
+
let visualization;
|
|
118
|
+
// Then: 형식에 따라 시각화
|
|
119
|
+
switch (parsed.format) {
|
|
120
|
+
case 'text':
|
|
121
|
+
visualization = RelationVisualizer.visualizeAsText(relations, visualizationOptions);
|
|
122
|
+
break;
|
|
123
|
+
case 'subgraph':
|
|
124
|
+
visualization = RelationVisualizer.visualizeSubgraph(parsed.memory_id, relations, visualizationOptions);
|
|
125
|
+
break;
|
|
126
|
+
case 'simple':
|
|
127
|
+
visualization = RelationVisualizer.visualizeSimple(relations);
|
|
128
|
+
break;
|
|
129
|
+
case 'json':
|
|
130
|
+
visualization = RelationVisualizer.visualizeAsJSON(relations, true);
|
|
131
|
+
break;
|
|
132
|
+
default:
|
|
133
|
+
// 기본값: subgraph
|
|
134
|
+
visualization = RelationVisualizer.visualizeSubgraph(parsed.memory_id, relations, visualizationOptions);
|
|
135
|
+
}
|
|
136
|
+
return this.createSuccessResult({
|
|
137
|
+
memory_id: parsed.memory_id,
|
|
138
|
+
format: parsed.format,
|
|
139
|
+
relation_count: relations.length,
|
|
140
|
+
visualization
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
catch (error) {
|
|
144
|
+
return {
|
|
145
|
+
content: [{
|
|
146
|
+
type: 'text',
|
|
147
|
+
text: JSON.stringify({
|
|
148
|
+
success: false,
|
|
149
|
+
error: 'VISUALIZATION_FAILED',
|
|
150
|
+
message: error instanceof Error ? error.message : String(error)
|
|
151
|
+
}, null, 2)
|
|
152
|
+
}]
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
//# sourceMappingURL=visualize-relations-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"visualize-relations-tool.js","sourceRoot":"","sources":["../../src/tools/visualize-relations-tool.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -31,6 +31,9 @@ export interface MemorySearchFilters {
|
|
|
31
31
|
time_to?: string | undefined;
|
|
32
32
|
pinned?: boolean | undefined;
|
|
33
33
|
}
|
|
34
|
+
export type { RelationCandidate, RelationType, RelationCategory, ExtractOptions, ExtractResult, IRelationExtractor } from './relation.js';
|
|
35
|
+
export type { MemoryRelation, RelationMetadata, RelationDirection, GetRelationsOptions, GetRelatedMemoriesOptions, AddRelationOptions, IRelationGraph, RelationTypeRegistry } from './relation-graph.js';
|
|
36
|
+
export { MEMORY_TYPE_RELATION_MAP, RELATION_TYPE_CATEGORY_MAP, RELATION_TYPE_BOOST_MAP, isApplicableRelationType, getRelationCategory, getRelationBoost } from './relation.js';
|
|
34
37
|
export interface MemorySearchResult {
|
|
35
38
|
id: string;
|
|
36
39
|
content: string;
|
|
@@ -51,6 +54,7 @@ export interface SearchRankingWeights {
|
|
|
51
54
|
duplication_penalty: number;
|
|
52
55
|
}
|
|
53
56
|
export type EmbeddingProvider = 'tfidf' | 'lightweight' | 'minilm' | 'openai' | 'gemini';
|
|
57
|
+
export type LLMProvider = 'openai' | 'gemini' | 'ollama' | 'auto';
|
|
54
58
|
export interface MementoConfig {
|
|
55
59
|
dbPath: string;
|
|
56
60
|
serverName: string;
|
|
@@ -59,9 +63,13 @@ export interface MementoConfig {
|
|
|
59
63
|
embeddingProvider: EmbeddingProvider;
|
|
60
64
|
openaiApiKey: string | undefined;
|
|
61
65
|
openaiModel: string;
|
|
66
|
+
openaiLlmModel: string;
|
|
62
67
|
geminiApiKey: string | undefined;
|
|
63
68
|
geminiModel: string;
|
|
64
69
|
embeddingDimensions: number;
|
|
70
|
+
llmProvider: LLMProvider;
|
|
71
|
+
ollamaBaseUrl: string;
|
|
72
|
+
ollamaModel: string;
|
|
65
73
|
searchDefaultLimit: number;
|
|
66
74
|
searchMaxLimit: number;
|
|
67
75
|
forgetTTL: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,YAAY,CAAC;AAG5E,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,YAAY,GAAG,MAAM,GAAG,OAAO,CAAC;AAEtG;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI,IAAI,UAAU,CAE5E;AAED,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEzD,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,YAAY,CAAC;IAC5B,UAAU,EAAE,IAAI,CAAC;IACjB,aAAa,CAAC,EAAE,IAAI,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC1B,IAAI,CAAC,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC5B,aAAa,CAAC,EAAE,YAAY,EAAE,GAAG,SAAS,CAAC;IAC3C,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC9B;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.js
CHANGED
|
@@ -8,4 +8,5 @@
|
|
|
8
8
|
export function isMemoryItemType(type) {
|
|
9
9
|
return type === 'working' || type === 'episodic' || type === 'semantic' || type === 'procedural';
|
|
10
10
|
}
|
|
11
|
+
export { MEMORY_TYPE_RELATION_MAP, RELATION_TYPE_CATEGORY_MAP, RELATION_TYPE_BOOST_MAP, isApplicableRelationType, getRelationCategory, getRelationBoost } from './relation.js';
|
|
11
12
|
//# sourceMappingURL=index.js.map
|
package/dist/types/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAuB;IACtD,OAAO,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,YAAY,CAAC;AACnG,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAuB;IACtD,OAAO,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,YAAY,CAAC;AACnG,CAAC;AAkDD,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,uBAAuB,EACvB,wBAAwB,EACxB,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 관계 그래프 타입 정의
|
|
3
|
+
* 기억 간의 관계를 저장하고 관리하기 위한 타입들
|
|
4
|
+
*/
|
|
5
|
+
import type { RelationType, RelationCategory } from './relation.js';
|
|
6
|
+
import type { MemoryType } from './index.js';
|
|
7
|
+
/**
|
|
8
|
+
* 메모리 관계 (데이터베이스 저장용)
|
|
9
|
+
*/
|
|
10
|
+
export interface MemoryRelation {
|
|
11
|
+
id: number;
|
|
12
|
+
source_id: string;
|
|
13
|
+
target_id: string;
|
|
14
|
+
relation_type: RelationType;
|
|
15
|
+
confidence: number;
|
|
16
|
+
created_at: Date;
|
|
17
|
+
updated_at: Date;
|
|
18
|
+
metadata?: RelationMetadata;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* 관계 메타데이터 (JSON 형식으로 저장)
|
|
22
|
+
*/
|
|
23
|
+
export interface RelationMetadata {
|
|
24
|
+
/**
|
|
25
|
+
* 추출 방법 ('rule' | 'llm')
|
|
26
|
+
*/
|
|
27
|
+
method?: 'rule' | 'llm';
|
|
28
|
+
/**
|
|
29
|
+
* 추출 시점 타임스탬프
|
|
30
|
+
*/
|
|
31
|
+
extracted_at?: string;
|
|
32
|
+
/**
|
|
33
|
+
* 순환 참조 여부
|
|
34
|
+
*/
|
|
35
|
+
cyclic?: boolean;
|
|
36
|
+
/**
|
|
37
|
+
* 추출 근거 (키워드 또는 LLM 설명)
|
|
38
|
+
*/
|
|
39
|
+
evidence?: string;
|
|
40
|
+
/**
|
|
41
|
+
* 신뢰도 개선 이력
|
|
42
|
+
*/
|
|
43
|
+
refinement_history?: Array<{
|
|
44
|
+
timestamp: string;
|
|
45
|
+
old_confidence: number;
|
|
46
|
+
new_confidence: number;
|
|
47
|
+
reason: string;
|
|
48
|
+
}>;
|
|
49
|
+
/**
|
|
50
|
+
* 기타 메타데이터
|
|
51
|
+
*/
|
|
52
|
+
[key: string]: any;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* 관계 조회 방향
|
|
56
|
+
*/
|
|
57
|
+
export type RelationDirection = 'outgoing' | 'incoming' | 'both';
|
|
58
|
+
/**
|
|
59
|
+
* 관계 조회 옵션
|
|
60
|
+
*/
|
|
61
|
+
export interface GetRelationsOptions {
|
|
62
|
+
/**
|
|
63
|
+
* 조회 방향 (기본값: 'both')
|
|
64
|
+
*/
|
|
65
|
+
direction?: RelationDirection;
|
|
66
|
+
/**
|
|
67
|
+
* 관계 유형 필터
|
|
68
|
+
*/
|
|
69
|
+
relationTypes?: RelationType[];
|
|
70
|
+
/**
|
|
71
|
+
* 최소 신뢰도 임계값
|
|
72
|
+
*/
|
|
73
|
+
minConfidence?: number;
|
|
74
|
+
/**
|
|
75
|
+
* 최대 결과 수 제한
|
|
76
|
+
*/
|
|
77
|
+
limit?: number;
|
|
78
|
+
/**
|
|
79
|
+
* 오프셋 (페이지네이션)
|
|
80
|
+
*/
|
|
81
|
+
offset?: number;
|
|
82
|
+
/**
|
|
83
|
+
* 캐시 우회 여부 (기본값: false)
|
|
84
|
+
* 탐색 중에는 캐시를 우회하고 직접 쿼리하는 것이 더 효율적일 수 있습니다.
|
|
85
|
+
*/
|
|
86
|
+
bypassCache?: boolean;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* N-hop 관계 탐색 옵션
|
|
90
|
+
*/
|
|
91
|
+
export interface GetRelatedMemoriesOptions {
|
|
92
|
+
/**
|
|
93
|
+
* 최대 hop 수 (기본값: 2)
|
|
94
|
+
*/
|
|
95
|
+
maxHops?: number;
|
|
96
|
+
/**
|
|
97
|
+
* 관계 유형 필터
|
|
98
|
+
*/
|
|
99
|
+
relationTypes?: RelationType[];
|
|
100
|
+
/**
|
|
101
|
+
* 최소 신뢰도 임계값
|
|
102
|
+
*/
|
|
103
|
+
minConfidence?: number;
|
|
104
|
+
/**
|
|
105
|
+
* 최대 결과 수 제한
|
|
106
|
+
*/
|
|
107
|
+
limit?: number;
|
|
108
|
+
/**
|
|
109
|
+
* 순환 참조 포함 여부 (기본값: false)
|
|
110
|
+
*/
|
|
111
|
+
includeCyclic?: boolean;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* 관계 추가 옵션
|
|
115
|
+
*/
|
|
116
|
+
export interface AddRelationOptions {
|
|
117
|
+
/**
|
|
118
|
+
* 신뢰도 (기본값: 0.7)
|
|
119
|
+
*/
|
|
120
|
+
confidence?: number;
|
|
121
|
+
/**
|
|
122
|
+
* 메타데이터
|
|
123
|
+
*/
|
|
124
|
+
metadata?: RelationMetadata;
|
|
125
|
+
/**
|
|
126
|
+
* UNIQUE 제약 위반 시 업데이트 여부 (기본값: false)
|
|
127
|
+
*/
|
|
128
|
+
updateOnConflict?: boolean;
|
|
129
|
+
/**
|
|
130
|
+
* 순환 참조 허용 여부 (기본값: false)
|
|
131
|
+
*/
|
|
132
|
+
allowCyclic?: boolean;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* 관계 그래프 인터페이스
|
|
136
|
+
*/
|
|
137
|
+
export interface IRelationGraph {
|
|
138
|
+
/**
|
|
139
|
+
* 관계 추가
|
|
140
|
+
*
|
|
141
|
+
* @param sourceId 소스 기억 ID
|
|
142
|
+
* @param targetId 타겟 기억 ID
|
|
143
|
+
* @param relationType 관계 유형
|
|
144
|
+
* @param options 추가 옵션
|
|
145
|
+
* @returns 추가된 관계 ID
|
|
146
|
+
* @throws 순환 참조가 감지되고 allowCyclic가 false인 경우
|
|
147
|
+
*/
|
|
148
|
+
addRelation(sourceId: string, targetId: string, relationType: RelationType, options?: AddRelationOptions): Promise<number>;
|
|
149
|
+
/**
|
|
150
|
+
* 관계 조회
|
|
151
|
+
*
|
|
152
|
+
* @param memoryId 기억 ID
|
|
153
|
+
* @param options 조회 옵션
|
|
154
|
+
* @returns 관계 목록
|
|
155
|
+
*/
|
|
156
|
+
getRelations(memoryId: string, options?: GetRelationsOptions): Promise<MemoryRelation[]>;
|
|
157
|
+
/**
|
|
158
|
+
* 관련 기억 조회 (N-hop 관계 탐색)
|
|
159
|
+
*
|
|
160
|
+
* @param memoryId 시작 기억 ID
|
|
161
|
+
* @param options 탐색 옵션
|
|
162
|
+
* @returns 관련 기억 ID 목록과 hop 거리
|
|
163
|
+
*/
|
|
164
|
+
getRelatedMemories(memoryId: string, options?: GetRelatedMemoriesOptions): Promise<Array<{
|
|
165
|
+
memory_id: string;
|
|
166
|
+
hop_distance: number;
|
|
167
|
+
relation_path: Array<{
|
|
168
|
+
source_id: string;
|
|
169
|
+
target_id: string;
|
|
170
|
+
relation_type: RelationType;
|
|
171
|
+
}>;
|
|
172
|
+
}>>;
|
|
173
|
+
/**
|
|
174
|
+
* 관계 삭제
|
|
175
|
+
*
|
|
176
|
+
* @param sourceId 소스 기억 ID
|
|
177
|
+
* @param targetId 타겟 기억 ID
|
|
178
|
+
* @param relationType 관계 유형
|
|
179
|
+
* @returns 삭제 성공 여부
|
|
180
|
+
*/
|
|
181
|
+
removeRelation(sourceId: string, targetId: string, relationType: RelationType): Promise<boolean>;
|
|
182
|
+
/**
|
|
183
|
+
* 신뢰도 갱신
|
|
184
|
+
*
|
|
185
|
+
* @param sourceId 소스 기억 ID
|
|
186
|
+
* @param targetId 타겟 기억 ID
|
|
187
|
+
* @param relationType 관계 유형
|
|
188
|
+
* @param newConfidence 새로운 신뢰도
|
|
189
|
+
* @param reason 갱신 이유
|
|
190
|
+
* @returns 갱신 성공 여부
|
|
191
|
+
*/
|
|
192
|
+
updateConfidence(sourceId: string, targetId: string, relationType: RelationType, newConfidence: number, reason?: string): Promise<boolean>;
|
|
193
|
+
/**
|
|
194
|
+
* 순환 참조 감지
|
|
195
|
+
*
|
|
196
|
+
* @param sourceId 소스 기억 ID
|
|
197
|
+
* @param targetId 타겟 기억 ID
|
|
198
|
+
* @param relationType 관계 유형
|
|
199
|
+
* @returns 순환 참조 여부
|
|
200
|
+
*/
|
|
201
|
+
detectCycle(sourceId: string, targetId: string, relationType: RelationType): Promise<boolean>;
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* 관계 타입 레지스트리 항목
|
|
205
|
+
*/
|
|
206
|
+
export interface RelationTypeRegistry {
|
|
207
|
+
type_name: RelationType;
|
|
208
|
+
category: RelationCategory;
|
|
209
|
+
description: string;
|
|
210
|
+
applicable_types: MemoryType[];
|
|
211
|
+
default_confidence: number;
|
|
212
|
+
search_boost: number;
|
|
213
|
+
created_at: Date;
|
|
214
|
+
}
|
|
215
|
+
//# sourceMappingURL=relation-graph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relation-graph.d.ts","sourceRoot":"","sources":["../../src/types/relation-graph.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relation-graph.js","sourceRoot":"","sources":["../../src/types/relation-graph.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 관계 추출 엔진 타입 정의
|
|
3
|
+
* 기억 간의 의미적 관계를 추출하고 관리하기 위한 타입들
|
|
4
|
+
*/
|
|
5
|
+
import type { MemoryItem, MemoryType } from './index.js';
|
|
6
|
+
/**
|
|
7
|
+
* 관계 추출 후보
|
|
8
|
+
* 관계 추출 엔진이 발견한 잠재적 관계를 나타냅니다.
|
|
9
|
+
*/
|
|
10
|
+
export interface RelationCandidate {
|
|
11
|
+
source_id: string;
|
|
12
|
+
target_id: string;
|
|
13
|
+
relation_type: RelationType;
|
|
14
|
+
confidence: number;
|
|
15
|
+
method: 'rule' | 'llm';
|
|
16
|
+
evidence?: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* 관계 유형
|
|
20
|
+
* 관계 추론 엔진에서 지원하는 관계 유형들
|
|
21
|
+
*/
|
|
22
|
+
export type RelationType = 'CAUSES' | 'DEPENDS_ON' | 'FOLLOWS' | 'CONTRASTS_WITH' | 'REFERENCES' | 'BELONGS_TO';
|
|
23
|
+
/**
|
|
24
|
+
* 관계 카테고리
|
|
25
|
+
* 관계 유형을 그룹화하는 카테고리
|
|
26
|
+
*/
|
|
27
|
+
export type RelationCategory = 'Causal' | 'Temporal' | 'Structural' | 'Semantic';
|
|
28
|
+
/**
|
|
29
|
+
* 관계 추출 옵션
|
|
30
|
+
*/
|
|
31
|
+
export interface ExtractOptions {
|
|
32
|
+
/**
|
|
33
|
+
* 추출 방법 강제 지정 ('rule' | 'llm' | 'hybrid')
|
|
34
|
+
* 기본값: 'hybrid' (규칙 기반 먼저 시도, 실패 시 LLM)
|
|
35
|
+
*/
|
|
36
|
+
method?: 'rule' | 'llm' | 'hybrid';
|
|
37
|
+
/**
|
|
38
|
+
* 최소 신뢰도 임계값 (이 값 이상인 관계만 반환)
|
|
39
|
+
* 기본값: 0.5
|
|
40
|
+
*/
|
|
41
|
+
minConfidence?: number;
|
|
42
|
+
/**
|
|
43
|
+
* 관계 추출 대상 기억 수 제한
|
|
44
|
+
* 기본값: 50 (규칙 기반), 30 (LLM)
|
|
45
|
+
*/
|
|
46
|
+
candidateLimit?: number;
|
|
47
|
+
/**
|
|
48
|
+
* 관계 유형 필터 (특정 관계 유형만 추출)
|
|
49
|
+
*/
|
|
50
|
+
relationTypes?: RelationType[];
|
|
51
|
+
/**
|
|
52
|
+
* 즉시 처리 여부 (false인 경우 배치 처리)
|
|
53
|
+
* 기본값: false
|
|
54
|
+
*/
|
|
55
|
+
immediate?: boolean;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* 관계 추출 결과
|
|
59
|
+
*/
|
|
60
|
+
export interface ExtractResult {
|
|
61
|
+
candidates: RelationCandidate[];
|
|
62
|
+
method: 'rule' | 'llm' | 'hybrid';
|
|
63
|
+
processingTime: number;
|
|
64
|
+
candidateCount: number;
|
|
65
|
+
extractedCount: number;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* 관계 추출기 인터페이스
|
|
69
|
+
* 관계 추출 엔진이 구현해야 하는 인터페이스
|
|
70
|
+
*/
|
|
71
|
+
export interface IRelationExtractor {
|
|
72
|
+
/**
|
|
73
|
+
* 새로운 기억과 기존 기억들 간의 관계를 추출합니다.
|
|
74
|
+
*
|
|
75
|
+
* @param newMemory 새로운 기억
|
|
76
|
+
* @param existingMemories 기존 기억 목록
|
|
77
|
+
* @param options 추출 옵션
|
|
78
|
+
* @returns 관계 후보 목록
|
|
79
|
+
*/
|
|
80
|
+
extractRelations(newMemory: MemoryItem, existingMemories: MemoryItem[], options?: ExtractOptions): Promise<RelationCandidate[]>;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* 기억 타입별 적용 가능한 관계 유형 매핑
|
|
84
|
+
*/
|
|
85
|
+
export declare const MEMORY_TYPE_RELATION_MAP: Record<MemoryType, RelationType[]>;
|
|
86
|
+
/**
|
|
87
|
+
* 관계 유형별 카테고리 매핑
|
|
88
|
+
*/
|
|
89
|
+
export declare const RELATION_TYPE_CATEGORY_MAP: Record<RelationType, RelationCategory>;
|
|
90
|
+
/**
|
|
91
|
+
* 관계 유형별 검색 부스트 가중치 (기본값)
|
|
92
|
+
* 실제 값은 relation_type_registry 테이블에서 관리
|
|
93
|
+
*/
|
|
94
|
+
export declare const RELATION_TYPE_BOOST_MAP: Record<RelationType, number>;
|
|
95
|
+
/**
|
|
96
|
+
* 기억 타입에 적용 가능한 관계 유형인지 확인
|
|
97
|
+
*/
|
|
98
|
+
export declare function isApplicableRelationType(memoryType: MemoryType, relationType: RelationType): boolean;
|
|
99
|
+
/**
|
|
100
|
+
* 관계 유형의 카테고리를 반환
|
|
101
|
+
*/
|
|
102
|
+
export declare function getRelationCategory(relationType: RelationType): RelationCategory;
|
|
103
|
+
/**
|
|
104
|
+
* 관계 유형의 검색 부스트 가중치를 반환
|
|
105
|
+
*/
|
|
106
|
+
export declare function getRelationBoost(relationType: RelationType): number;
|
|
107
|
+
/**
|
|
108
|
+
* 모든 관계 유형 목록
|
|
109
|
+
* 여러 파일에서 중복 정의를 방지하기 위한 공통 상수
|
|
110
|
+
*/
|
|
111
|
+
export declare const ALL_RELATION_TYPES: readonly RelationType[];
|
|
112
|
+
//# sourceMappingURL=relation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relation.d.ts","sourceRoot":"","sources":["../../src/types/relation.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEzD;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,YAAY,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,MAAM,YAAY,GACpB,QAAQ,GACR,YAAY,GACZ,SAAS,GACT,gBAAgB,GAChB,YAAY,GACZ,YAAY,CAAC;AAEjB;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,UAAU,GAAG,YAAY,GAAG,UAAU,CAAC;AAEjF;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;IAEnC;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;IAE/B;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAChC,MAAM,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;;;;OAOG;IACH,gBAAgB,CACd,SAAS,EAAE,UAAU,EACrB,gBAAgB,EAAE,UAAU,EAAE,EAC9B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;CACjC;AAED;;GAEG;AACH,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,UAAU,EAAE,YAAY,EAAE,CAKvE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,0BAA0B,EAAE,MAAM,CAAC,YAAY,EAAE,gBAAgB,CAO7E,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAOhE,CAAC;AAEF;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,YAAY,GACzB,OAAO,CAET;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,YAAY,GAAG,gBAAgB,CAEhF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,YAAY,GAAG,MAAM,CAEnE;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,YAAY,EAO5C,CAAC"}
|