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.
Files changed (124) hide show
  1. package/README.en.md +21 -6
  2. package/README.md +38 -7
  3. package/dist/algorithms/hybrid-search-engine.d.ts +34 -1
  4. package/dist/algorithms/hybrid-search-engine.d.ts.map +1 -1
  5. package/dist/algorithms/hybrid-search-engine.js +186 -17
  6. package/dist/algorithms/hybrid-search-engine.js.map +1 -1
  7. package/dist/algorithms/search-ranking.d.ts +15 -1
  8. package/dist/algorithms/search-ranking.d.ts.map +1 -1
  9. package/dist/algorithms/search-ranking.js +41 -4
  10. package/dist/algorithms/search-ranking.js.map +1 -1
  11. package/dist/config/environment.d.ts.map +1 -1
  12. package/dist/config/environment.js +4 -0
  13. package/dist/config/environment.js.map +1 -1
  14. package/dist/config/index.d.ts.map +1 -1
  15. package/dist/config/index.js +6 -0
  16. package/dist/config/index.js.map +1 -1
  17. package/dist/config/ranking-weights-loader.d.ts +37 -0
  18. package/dist/config/ranking-weights-loader.d.ts.map +1 -0
  19. package/dist/config/ranking-weights-loader.js +109 -0
  20. package/dist/config/ranking-weights-loader.js.map +1 -0
  21. package/dist/constants/relation-constants.d.ts +95 -0
  22. package/dist/constants/relation-constants.d.ts.map +1 -0
  23. package/dist/constants/relation-constants.js +95 -0
  24. package/dist/constants/relation-constants.js.map +1 -0
  25. package/dist/database/migration/migrations/005-relation-engine-schema.d.ts +65 -0
  26. package/dist/database/migration/migrations/005-relation-engine-schema.d.ts.map +1 -0
  27. package/dist/database/migration/migrations/005-relation-engine-schema.js +295 -0
  28. package/dist/database/migration/migrations/005-relation-engine-schema.js.map +1 -0
  29. package/dist/database/migration/migrations/005-relation-engine-schema.sql +64 -0
  30. package/dist/services/anchor/anchor-interfaces.d.ts +1 -0
  31. package/dist/services/anchor/anchor-interfaces.d.ts.map +1 -1
  32. package/dist/services/anchor/anchor-interfaces.js.map +1 -1
  33. package/dist/services/anchor/anchor-search-service.d.ts +16 -0
  34. package/dist/services/anchor/anchor-search-service.d.ts.map +1 -1
  35. package/dist/services/anchor/anchor-search-service.js +136 -17
  36. package/dist/services/anchor/anchor-search-service.js.map +1 -1
  37. package/dist/services/batch-scheduler.d.ts +11 -0
  38. package/dist/services/batch-scheduler.d.ts.map +1 -1
  39. package/dist/services/batch-scheduler.js +99 -0
  40. package/dist/services/batch-scheduler.js.map +1 -1
  41. package/dist/services/llm-based-relation-extractor.d.ts +156 -0
  42. package/dist/services/llm-based-relation-extractor.d.ts.map +1 -0
  43. package/dist/services/llm-based-relation-extractor.js +1350 -0
  44. package/dist/services/llm-based-relation-extractor.js.map +1 -0
  45. package/dist/services/relation-extractor.d.ts +73 -0
  46. package/dist/services/relation-extractor.d.ts.map +1 -0
  47. package/dist/services/relation-extractor.js +231 -0
  48. package/dist/services/relation-extractor.js.map +1 -0
  49. package/dist/services/relation-graph.d.ts +275 -0
  50. package/dist/services/relation-graph.d.ts.map +1 -0
  51. package/dist/services/relation-graph.js +869 -0
  52. package/dist/services/relation-graph.js.map +1 -0
  53. package/dist/services/relation-quality-validator.d.ts +211 -0
  54. package/dist/services/relation-quality-validator.d.ts.map +1 -0
  55. package/dist/services/relation-quality-validator.js +415 -0
  56. package/dist/services/relation-quality-validator.js.map +1 -0
  57. package/dist/services/rule-based-relation-extractor.d.ts +66 -0
  58. package/dist/services/rule-based-relation-extractor.d.ts.map +1 -0
  59. package/dist/services/rule-based-relation-extractor.js +258 -0
  60. package/dist/services/rule-based-relation-extractor.js.map +1 -0
  61. package/dist/tools/add-relation-tool.d.ts +34 -0
  62. package/dist/tools/add-relation-tool.d.ts.map +1 -0
  63. package/dist/tools/add-relation-tool.js +163 -0
  64. package/dist/tools/add-relation-tool.js.map +1 -0
  65. package/dist/tools/extract-relations-tool.d.ts +28 -0
  66. package/dist/tools/extract-relations-tool.d.ts.map +1 -0
  67. package/dist/tools/extract-relations-tool.js +159 -0
  68. package/dist/tools/extract-relations-tool.js.map +1 -0
  69. package/dist/tools/get-relations-tool.d.ts +34 -0
  70. package/dist/tools/get-relations-tool.d.ts.map +1 -0
  71. package/dist/tools/get-relations-tool.js +155 -0
  72. package/dist/tools/get-relations-tool.js.map +1 -0
  73. package/dist/tools/index.d.ts +6 -1
  74. package/dist/tools/index.d.ts.map +1 -1
  75. package/dist/tools/index.js +16 -2
  76. package/dist/tools/index.js.map +1 -1
  77. package/dist/tools/remember-tool.d.ts +17 -0
  78. package/dist/tools/remember-tool.d.ts.map +1 -1
  79. package/dist/tools/remember-tool.js +195 -26
  80. package/dist/tools/remember-tool.js.map +1 -1
  81. package/dist/tools/remove-relation-tool.d.ts +45 -0
  82. package/dist/tools/remove-relation-tool.d.ts.map +1 -0
  83. package/dist/tools/remove-relation-tool.js +142 -0
  84. package/dist/tools/remove-relation-tool.js.map +1 -0
  85. package/dist/tools/search-local-tool.d.ts.map +1 -1
  86. package/dist/tools/search-local-tool.js +10 -3
  87. package/dist/tools/search-local-tool.js.map +1 -1
  88. package/dist/tools/types.d.ts +2 -0
  89. package/dist/tools/types.d.ts.map +1 -1
  90. package/dist/tools/types.js.map +1 -1
  91. package/dist/tools/visualize-relations-tool.d.ts +46 -0
  92. package/dist/tools/visualize-relations-tool.d.ts.map +1 -0
  93. package/dist/tools/visualize-relations-tool.js +157 -0
  94. package/dist/tools/visualize-relations-tool.js.map +1 -0
  95. package/dist/types/index.d.ts +8 -0
  96. package/dist/types/index.d.ts.map +1 -1
  97. package/dist/types/index.js +1 -0
  98. package/dist/types/index.js.map +1 -1
  99. package/dist/types/relation-graph.d.ts +215 -0
  100. package/dist/types/relation-graph.d.ts.map +1 -0
  101. package/dist/types/relation-graph.js +6 -0
  102. package/dist/types/relation-graph.js.map +1 -0
  103. package/dist/types/relation.d.ts +112 -0
  104. package/dist/types/relation.d.ts.map +1 -0
  105. package/dist/types/relation.js +67 -0
  106. package/dist/types/relation.js.map +1 -0
  107. package/dist/utils/cache-key-generator.d.ts +63 -0
  108. package/dist/utils/cache-key-generator.d.ts.map +1 -0
  109. package/dist/utils/cache-key-generator.js +76 -0
  110. package/dist/utils/cache-key-generator.js.map +1 -0
  111. package/dist/utils/database.d.ts.map +1 -1
  112. package/dist/utils/database.js +37 -17
  113. package/dist/utils/database.js.map +1 -1
  114. package/dist/utils/relation-visualizer.d.ts +81 -0
  115. package/dist/utils/relation-visualizer.d.ts.map +1 -0
  116. package/dist/utils/relation-visualizer.js +239 -0
  117. package/dist/utils/relation-visualizer.js.map +1 -0
  118. package/dist/utils/type-guards.d.ts +100 -0
  119. package/dist/utils/type-guards.d.ts.map +1 -0
  120. package/dist/utils/type-guards.js +144 -0
  121. package/dist/utils/type-guards.js.map +1 -0
  122. package/package.json +7 -2
  123. package/scripts/generate-relation-report.ts +481 -0
  124. package/scripts/weekly-relation-validation.ts +423 -0
@@ -16,6 +16,7 @@ import { KnowledgeVaultRepository } from '../repositories/knowledge-vault-reposi
16
16
  import { KnowledgeVaultService } from '../services/knowledge-vault-service.js';
17
17
  import { validateTypeParam } from '../utils/type-param-validator.js';
18
18
  import { mementoConfig } from '../config/index.js';
19
+ import { RelationExtractor } from '../services/relation-extractor.js';
19
20
  const RememberSchema = z.object({
20
21
  content: CommonSchemas.Content,
21
22
  type: CommonSchemas.MemoryType.optional(), // optional - validateTypeParam에서 기본값 처리
@@ -267,13 +268,15 @@ export class RememberTool extends BaseTool {
267
268
  consolidationScore
268
269
  ]);
269
270
  });
270
- // 메모리 저장 완료 후 임베딩 생성 인접 기억 갱신 (비동기, 실패해도 메모리 저장은 성공)
271
+ // 메모리 저장 완료 후 임베딩 생성, 인접 기억 갱신, 관계 추출 (비동기, 실패해도 메모리 저장은 성공)
271
272
  // 데이터베이스 참조를 미리 저장하여 비동기 콜백에서 안전하게 사용
272
273
  const dbRef = context.db;
273
274
  const embeddingServiceRef = context.services.embeddingService;
274
- if (embeddingServiceRef?.isAvailable() && dbRef) {
275
+ const savedMemoryId = id; // 클로저에서 사용할 수 있도록 저장
276
+ const savedMemoryType = type; // 클로저에서 사용할 수 있도록 저장
277
+ if (dbRef) {
275
278
  // 비동기 작업을 별도로 실행 (fire-and-forget 패턴)
276
- // 메모리 저장 응답은 즉시 반환하고, 임베딩/인접 기억 갱신은 백그라운드에서 처리
279
+ // 메모리 저장 응답은 즉시 반환하고, 임베딩/인접 기억 갱신/관계 추출은 백그라운드에서 처리
277
280
  (async () => {
278
281
  try {
279
282
  // 트랜잭션이 완전히 커밋되도록 짧은 지연
@@ -292,19 +295,30 @@ export class RememberTool extends BaseTool {
292
295
  });
293
296
  }
294
297
  catch (dbError) {
295
- this.logWarning('데이터베이스 연결이 유효하지 않아 임베딩 생성을 건너뜁니다', {
296
- memory_id: id,
298
+ this.logWarning('데이터베이스 연결이 유효하지 않아 백그라운드 작업을 건너뜁니다', {
299
+ memory_id: savedMemoryId,
297
300
  error: dbError instanceof Error ? dbError.message : String(dbError)
298
301
  });
299
302
  return;
300
303
  }
301
- // 임베딩 생성
302
- const embeddingResult = await embeddingServiceRef.createAndStoreEmbedding(dbRef, id, content, type);
303
- if (embeddingResult) {
304
- // PRD 3.1-3.3: 인접 기억 갱신
304
+ // 임베딩 생성 (embeddingService가 사용 가능한 경우에만)
305
+ let embeddingResult = null;
306
+ if (embeddingServiceRef?.isAvailable()) {
307
+ try {
308
+ embeddingResult = await embeddingServiceRef.createAndStoreEmbedding(dbRef, savedMemoryId, content, savedMemoryType);
309
+ }
310
+ catch (error) {
311
+ // 임베딩 생성 실패해도 메모리 저장은 성공했으므로 경고만 출력
312
+ this.logWarning(`임베딩 생성 실패 (${savedMemoryId})`, {
313
+ error: error instanceof Error ? error.message : String(error)
314
+ });
315
+ }
316
+ }
317
+ // PRD 3.1-3.3: 인접 기억 갱신 (임베딩이 생성된 경우에만)
318
+ if (embeddingResult && embeddingServiceRef) {
305
319
  try {
306
320
  // 데이터베이스 연결 재확인
307
- // DatabaseUtils.get은 동기 함수이지만, 비동기 컨텍스트에서 안전하게 실행하기 위해 Promise로 감싸서 await
321
+ let dbValid = false;
308
322
  try {
309
323
  await new Promise((resolve, reject) => {
310
324
  try {
@@ -315,43 +329,117 @@ export class RememberTool extends BaseTool {
315
329
  reject(error);
316
330
  }
317
331
  });
332
+ dbValid = true;
318
333
  }
319
334
  catch (dbError) {
320
335
  this.logWarning('데이터베이스 연결이 유효하지 않아 인접 기억 갱신을 건너뜁니다', {
321
- memory_id: id,
336
+ memory_id: savedMemoryId,
322
337
  error: dbError instanceof Error ? dbError.message : String(dbError)
323
338
  });
324
- return;
325
339
  }
326
- const vectorSearchEngine = getVectorSearchEngine();
327
- const neighborService = new MemoryNeighborService(vectorSearchEngine, embeddingServiceRef);
328
- neighborService.setDatabase(dbRef);
329
- // 인접 기억 갱신 (기본 유사도 임계값: 0.8)
330
- const neighborIds = await neighborService.updateNeighborsForNewMemory(id, 0.8);
331
- if (neighborIds.length > 0) {
332
- this.logInfo('인접 기억 갱신 완료', {
333
- memory_id: id,
334
- neighbor_count: neighborIds.length
335
- });
340
+ if (dbValid) {
341
+ const vectorSearchEngine = getVectorSearchEngine();
342
+ const neighborService = new MemoryNeighborService(vectorSearchEngine, embeddingServiceRef);
343
+ neighborService.setDatabase(dbRef);
344
+ // 인접 기억 갱신 (기본 유사도 임계값: 0.8)
345
+ const neighborIds = await neighborService.updateNeighborsForNewMemory(savedMemoryId, 0.8);
346
+ if (neighborIds.length > 0) {
347
+ this.logInfo('인접 기억 갱신 완료', {
348
+ memory_id: savedMemoryId,
349
+ neighbor_count: neighborIds.length
350
+ });
351
+ }
336
352
  }
337
353
  }
338
354
  catch (error) {
339
355
  // 인접 기억 갱신 실패해도 메모리 저장은 성공했으므로 경고만 출력
340
- this.logWarning(`인접 기억 갱신 실패 (${id})`, {
356
+ this.logWarning(`인접 기억 갱신 실패 (${savedMemoryId})`, {
341
357
  error: error instanceof Error ? error.message : String(error)
342
358
  });
343
359
  }
344
360
  }
361
+ // PRD 2.12: 관계 추출 트리거 (비동기 배치 처리)
362
+ // 임베딩 생성 여부와 관계없이 관계 추출 수행 (규칙 기반 추출은 임베딩 불필요)
363
+ try {
364
+ // 데이터베이스 연결 재확인
365
+ let dbValid = false;
366
+ try {
367
+ await new Promise((resolve, reject) => {
368
+ try {
369
+ DatabaseUtils.get(dbRef, 'SELECT 1');
370
+ resolve();
371
+ }
372
+ catch (error) {
373
+ reject(error);
374
+ }
375
+ });
376
+ dbValid = true;
377
+ }
378
+ catch (dbError) {
379
+ this.logWarning('데이터베이스 연결이 유효하지 않아 관계 추출을 건너뜁니다', {
380
+ memory_id: savedMemoryId,
381
+ error: dbError instanceof Error ? dbError.message : String(dbError)
382
+ });
383
+ }
384
+ if (dbValid) {
385
+ // 기존 기억들 조회 (최근 100개로 제한하여 성능 최적화)
386
+ const existingMemories = await this.getExistingMemoriesForRelationExtraction(dbRef, savedMemoryId, 100);
387
+ if (existingMemories.length > 0) {
388
+ // 새로 저장된 기억 정보 조회
389
+ const newMemory = await this.getMemoryById(dbRef, savedMemoryId);
390
+ if (newMemory) {
391
+ // RelationExtractor를 사용하여 관계 추출
392
+ const relationExtractor = new RelationExtractor();
393
+ // 비동기 배치 처리로 관계 추출
394
+ // immediate: true로 설정하여 캐싱 활성화
395
+ const candidates = await relationExtractor.extractRelations(newMemory, existingMemories, {
396
+ method: 'hybrid',
397
+ minConfidence: 0.5,
398
+ candidateLimit: 30, // MiniLM 필터링을 위한 제한
399
+ immediate: true // 캐싱 활성화
400
+ });
401
+ if (candidates.length > 0) {
402
+ this.logInfo('관계 추출 완료', {
403
+ memory_id: savedMemoryId,
404
+ relation_count: candidates.length,
405
+ relations: candidates.map(c => ({
406
+ target_id: c.target_id,
407
+ relation_type: c.relation_type,
408
+ confidence: c.confidence,
409
+ method: c.method
410
+ }))
411
+ });
412
+ // TODO: PRD 3.0에서 RelationGraph가 구현되면 여기서 관계를 저장
413
+ // const relationGraph = new RelationGraph(dbRef);
414
+ // for (const candidate of candidates) {
415
+ // await relationGraph.addRelation(candidate);
416
+ // }
417
+ }
418
+ else {
419
+ this.logInfo('관계 추출 완료 (관계 없음)', {
420
+ memory_id: savedMemoryId
421
+ });
422
+ }
423
+ }
424
+ }
425
+ }
426
+ }
427
+ catch (error) {
428
+ // 관계 추출 실패해도 메모리 저장은 성공했으므로 경고만 출력
429
+ this.logWarning(`관계 추출 실패 (${savedMemoryId})`, {
430
+ error: error instanceof Error ? error.message : String(error)
431
+ });
432
+ }
345
433
  }
346
434
  catch (error) {
347
- // 임베딩 생성 실패해도 메모리 저장은 성공했으므로 경고만 출력
348
- this.logWarning(`임베딩 생성 실패 (${id})`, {
435
+ // 백그라운드 작업 실패해도 메모리 저장은 성공했으므로 경고만 출력
436
+ this.logWarning(`백그라운드 작업 실패 (${savedMemoryId})`, {
349
437
  error: error instanceof Error ? error.message : String(error)
350
438
  });
351
439
  }
352
440
  })().catch((error) => {
353
441
  // 예상치 못한 에러 처리
354
- this.logWarning(`백그라운드 작업 실패 (${id})`, {
442
+ this.logWarning(`백그라운드 작업 실패 (${savedMemoryId})`, {
355
443
  error: error instanceof Error ? error.message : String(error)
356
444
  });
357
445
  });
@@ -377,5 +465,86 @@ export class RememberTool extends BaseTool {
377
465
  }
378
466
  }
379
467
  }
468
+ /**
469
+ * 관계 추출을 위한 기존 기억들 조회
470
+ *
471
+ * @param db 데이터베이스 연결
472
+ * @param excludeId 제외할 기억 ID (새로 저장된 기억)
473
+ * @param limit 조회할 기억 수 제한
474
+ * @returns 기존 기억 목록
475
+ */
476
+ async getExistingMemoriesForRelationExtraction(db, excludeId, limit = 100) {
477
+ try {
478
+ const rows = await DatabaseUtils.all(db, `
479
+ SELECT
480
+ id, type, content, importance, privacy_scope,
481
+ created_at, last_accessed, pinned, tags, source, embedding
482
+ FROM memory_item
483
+ WHERE id != ? -- 새로 저장된 기억 제외
484
+ ORDER BY created_at DESC
485
+ LIMIT ?
486
+ `, [excludeId, limit]);
487
+ return rows.map((row) => ({
488
+ id: row.id,
489
+ type: row.type,
490
+ content: row.content,
491
+ importance: row.importance,
492
+ privacy_scope: row.privacy_scope,
493
+ created_at: new Date(row.created_at),
494
+ last_accessed: row.last_accessed ? new Date(row.last_accessed) : undefined,
495
+ pinned: Boolean(row.pinned),
496
+ tags: row.tags ? JSON.parse(row.tags) : undefined,
497
+ source: row.source || undefined,
498
+ embedding: row.embedding ? JSON.parse(row.embedding) : undefined
499
+ }));
500
+ }
501
+ catch (error) {
502
+ this.logWarning('기존 기억 조회 실패', {
503
+ error: error instanceof Error ? error.message : String(error)
504
+ });
505
+ return [];
506
+ }
507
+ }
508
+ /**
509
+ * ID로 기억 조회
510
+ *
511
+ * @param db 데이터베이스 연결
512
+ * @param id 기억 ID
513
+ * @returns 기억 정보
514
+ */
515
+ async getMemoryById(db, id) {
516
+ try {
517
+ const row = await DatabaseUtils.get(db, `
518
+ SELECT
519
+ id, type, content, importance, privacy_scope,
520
+ created_at, last_accessed, pinned, tags, source, embedding
521
+ FROM memory_item
522
+ WHERE id = ?
523
+ `, [id]);
524
+ if (!row) {
525
+ return null;
526
+ }
527
+ return {
528
+ id: row.id,
529
+ type: row.type,
530
+ content: row.content,
531
+ importance: row.importance,
532
+ privacy_scope: row.privacy_scope,
533
+ created_at: new Date(row.created_at),
534
+ last_accessed: row.last_accessed ? new Date(row.last_accessed) : undefined,
535
+ pinned: Boolean(row.pinned),
536
+ tags: row.tags ? JSON.parse(row.tags) : undefined,
537
+ source: row.source || undefined,
538
+ embedding: row.embedding ? JSON.parse(row.embedding) : undefined
539
+ };
540
+ }
541
+ catch (error) {
542
+ this.logWarning('기억 조회 실패', {
543
+ memory_id: id,
544
+ error: error instanceof Error ? error.message : String(error)
545
+ });
546
+ return null;
547
+ }
548
+ }
380
549
  }
381
550
  //# sourceMappingURL=remember-tool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"remember-tool.js","sourceRoot":"","sources":["../../src/tools/remember-tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"remember-tool.js","sourceRoot":"","sources":["../../src/tools/remember-tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Remove Relation Tool - 관계 삭제 도구
3
+ * 메모리 간의 관계를 삭제합니다.
4
+ * relation_id 또는 source_id/target_id/relation_type 조합으로 삭제 가능합니다.
5
+ */
6
+ import { z } from 'zod';
7
+ import { BaseTool } from './base-tool.js';
8
+ import type { ToolContext, ToolResult } from './types.js';
9
+ declare const RemoveRelationSchema: z.ZodEffects<z.ZodObject<{
10
+ relation_id: z.ZodOptional<z.ZodNumber>;
11
+ source_id: z.ZodOptional<z.ZodString>;
12
+ target_id: z.ZodOptional<z.ZodString>;
13
+ relation_type: z.ZodOptional<z.ZodEnum<["CAUSES", "DEPENDS_ON", "FOLLOWS", "CONTRASTS_WITH", "REFERENCES", "BELONGS_TO"]>>;
14
+ }, "strip", z.ZodTypeAny, {
15
+ source_id?: string | undefined;
16
+ target_id?: string | undefined;
17
+ relation_type?: "CAUSES" | "DEPENDS_ON" | "FOLLOWS" | "CONTRASTS_WITH" | "REFERENCES" | "BELONGS_TO" | undefined;
18
+ relation_id?: number | undefined;
19
+ }, {
20
+ source_id?: string | undefined;
21
+ target_id?: string | undefined;
22
+ relation_type?: "CAUSES" | "DEPENDS_ON" | "FOLLOWS" | "CONTRASTS_WITH" | "REFERENCES" | "BELONGS_TO" | undefined;
23
+ relation_id?: number | undefined;
24
+ }>, {
25
+ source_id?: string | undefined;
26
+ target_id?: string | undefined;
27
+ relation_type?: "CAUSES" | "DEPENDS_ON" | "FOLLOWS" | "CONTRASTS_WITH" | "REFERENCES" | "BELONGS_TO" | undefined;
28
+ relation_id?: number | undefined;
29
+ }, {
30
+ source_id?: string | undefined;
31
+ target_id?: string | undefined;
32
+ relation_type?: "CAUSES" | "DEPENDS_ON" | "FOLLOWS" | "CONTRASTS_WITH" | "REFERENCES" | "BELONGS_TO" | undefined;
33
+ relation_id?: number | undefined;
34
+ }>;
35
+ export declare class RemoveRelationTool extends BaseTool {
36
+ constructor();
37
+ /**
38
+ * Given: relation_id 또는 source_id/target_id/relation_type
39
+ * When: 관계 삭제 수행
40
+ * Then: 삭제 성공 여부 반환
41
+ */
42
+ handle(params: z.infer<typeof RemoveRelationSchema>, context: ToolContext): Promise<ToolResult>;
43
+ }
44
+ export {};
45
+ //# sourceMappingURL=remove-relation-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-relation-tool.d.ts","sourceRoot":"","sources":["../../src/tools/remove-relation-tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;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,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;EAgBzB,CAAC;AAEF,qBAAa,kBAAmB,SAAQ,QAAQ;;IA8B9C;;;;OAIG;IACG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;CAoGtG"}
@@ -0,0 +1,142 @@
1
+ /**
2
+ * Remove Relation Tool - 관계 삭제 도구
3
+ * 메모리 간의 관계를 삭제합니다.
4
+ * relation_id 또는 source_id/target_id/relation_type 조합으로 삭제 가능합니다.
5
+ */
6
+ import { z } from 'zod';
7
+ import { BaseTool } from './base-tool.js';
8
+ import { DatabaseUtils } from '../utils/database.js';
9
+ import { RelationGraph } from '../services/relation-graph.js';
10
+ const RemoveRelationSchema = z.object({
11
+ relation_id: z.number().int().positive().optional().describe('관계 ID (relation_id 또는 source_id/target_id/relation_type 조합 중 하나는 필수)'),
12
+ source_id: z.string().min(1).optional().describe('소스 메모리 ID'),
13
+ target_id: z.string().min(1).optional().describe('타겟 메모리 ID'),
14
+ relation_type: z.enum(['CAUSES', 'DEPENDS_ON', 'FOLLOWS', 'CONTRASTS_WITH', 'REFERENCES', 'BELONGS_TO']).optional().describe('관계 유형')
15
+ }).refine((data) => {
16
+ // relation_id가 있거나, source_id/target_id/relation_type이 모두 있어야 함
17
+ if (data.relation_id) {
18
+ return true;
19
+ }
20
+ return !!(data.source_id && data.target_id && data.relation_type);
21
+ }, {
22
+ message: 'relation_id 또는 source_id/target_id/relation_type 조합 중 하나는 필수입니다'
23
+ });
24
+ export class RemoveRelationTool extends BaseTool {
25
+ constructor() {
26
+ super('remove_relation', '메모리 간의 관계를 삭제합니다. relation_id 또는 source_id/target_id/relation_type 조합으로 삭제 가능합니다.', {
27
+ type: 'object',
28
+ properties: {
29
+ relation_id: {
30
+ type: 'number',
31
+ description: '관계 ID (relation_id 또는 source_id/target_id/relation_type 조합 중 하나는 필수)'
32
+ },
33
+ source_id: {
34
+ type: 'string',
35
+ description: '소스 메모리 ID'
36
+ },
37
+ target_id: {
38
+ type: 'string',
39
+ description: '타겟 메모리 ID'
40
+ },
41
+ relation_type: {
42
+ type: 'string',
43
+ enum: ['CAUSES', 'DEPENDS_ON', 'FOLLOWS', 'CONTRASTS_WITH', 'REFERENCES', 'BELONGS_TO'],
44
+ description: '관계 유형'
45
+ }
46
+ }
47
+ });
48
+ }
49
+ /**
50
+ * Given: relation_id 또는 source_id/target_id/relation_type
51
+ * When: 관계 삭제 수행
52
+ * Then: 삭제 성공 여부 반환
53
+ */
54
+ async handle(params, context) {
55
+ const parsed = RemoveRelationSchema.parse(params);
56
+ const db = context.db;
57
+ try {
58
+ // RelationGraph 인스턴스 생성 (context에 없으면 새로 생성)
59
+ const relationGraph = context.services.relationGraph || new RelationGraph(db);
60
+ let deleted = false;
61
+ let relationInfo = null;
62
+ // Given: relation_id로 삭제
63
+ if (parsed.relation_id) {
64
+ // 관계 정보 조회
65
+ const relation = DatabaseUtils.get(db, `
66
+ SELECT source_id, target_id, relation_type
67
+ FROM memory_relation
68
+ WHERE id = ?
69
+ `, [parsed.relation_id]);
70
+ if (!relation) {
71
+ return {
72
+ content: [{
73
+ type: 'text',
74
+ text: JSON.stringify({
75
+ success: false,
76
+ error: 'RELATION_NOT_FOUND',
77
+ message: `관계를 찾을 수 없습니다: relation_id=${parsed.relation_id}`
78
+ }, null, 2)
79
+ }]
80
+ };
81
+ }
82
+ relationInfo = relation;
83
+ // When: removeRelation 메서드 사용 (캐시 무효화 포함)
84
+ deleted = await relationGraph.removeRelation(relation.source_id, relation.target_id, relation.relation_type);
85
+ }
86
+ else {
87
+ // Given: source_id/target_id/relation_type 조합으로 삭제
88
+ const { source_id, target_id, relation_type } = parsed;
89
+ if (!source_id || !target_id || !relation_type) {
90
+ return {
91
+ content: [{
92
+ type: 'text',
93
+ text: JSON.stringify({
94
+ success: false,
95
+ error: 'INVALID_PARAMS',
96
+ message: 'source_id, target_id, relation_type이 모두 필요합니다'
97
+ }, null, 2)
98
+ }]
99
+ };
100
+ }
101
+ relationInfo = { source_id, target_id, relation_type };
102
+ // When: removeRelation 메서드 사용
103
+ deleted = await relationGraph.removeRelation(source_id, target_id, relation_type);
104
+ }
105
+ // Then: 결과 반환
106
+ if (deleted && relationInfo) {
107
+ return this.createSuccessResult({
108
+ deleted: true,
109
+ ...relationInfo,
110
+ message: `관계가 삭제되었습니다: ${relationInfo.source_id} --[${relationInfo.relation_type}]--> ${relationInfo.target_id}`
111
+ });
112
+ }
113
+ else {
114
+ return {
115
+ content: [{
116
+ type: 'text',
117
+ text: JSON.stringify({
118
+ success: false,
119
+ error: 'RELATION_NOT_FOUND',
120
+ message: relationInfo
121
+ ? `관계를 찾을 수 없습니다: ${relationInfo.source_id} --[${relationInfo.relation_type}]--> ${relationInfo.target_id}`
122
+ : '관계를 찾을 수 없습니다'
123
+ }, null, 2)
124
+ }]
125
+ };
126
+ }
127
+ }
128
+ catch (error) {
129
+ return {
130
+ content: [{
131
+ type: 'text',
132
+ text: JSON.stringify({
133
+ success: false,
134
+ error: 'REMOVE_RELATION_FAILED',
135
+ message: error instanceof Error ? error.message : String(error)
136
+ }, null, 2)
137
+ }]
138
+ };
139
+ }
140
+ }
141
+ }
142
+ //# sourceMappingURL=remove-relation-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-relation-tool.js","sourceRoot":"","sources":["../../src/tools/remove-relation-tool.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"search-local-tool.d.ts","sourceRoot":"","sources":["../../src/tools/search-local-tool.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAa1D,qBAAa,eAAgB,SAAQ,QAAQ;;IAgDrC,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;CAyCrE"}
1
+ {"version":3,"file":"search-local-tool.d.ts","sourceRoot":"","sources":["../../src/tools/search-local-tool.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAc1D,qBAAa,eAAgB,SAAQ,QAAQ;;IAqDrC,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;CA0CrE"}
@@ -11,7 +11,8 @@ const SearchLocalSchema = z.object({
11
11
  hop_limit: z.number().min(1).max(5).optional(),
12
12
  limit: z.number().min(1).max(100).default(10),
13
13
  min_results: z.number().min(0).max(100).default(3),
14
- agent_id: z.string().optional().default('default')
14
+ agent_id: z.string().optional().default('default'),
15
+ use_relations: z.boolean().optional().default(true)
15
16
  });
16
17
  export class SearchLocalTool extends BaseTool {
17
18
  constructor() {
@@ -51,6 +52,11 @@ export class SearchLocalTool extends BaseTool {
51
52
  type: 'string',
52
53
  description: '에이전트 ID (기본값: "default")',
53
54
  default: 'default'
55
+ },
56
+ use_relations: {
57
+ type: 'boolean',
58
+ description: '관계 그래프 사용 여부 (기본값: true)',
59
+ default: true
54
60
  }
55
61
  },
56
62
  required: ['slot']
@@ -59,7 +65,7 @@ export class SearchLocalTool extends BaseTool {
59
65
  async handle(params, context) {
60
66
  try {
61
67
  // 파라미터 검증
62
- const { slot, query, hop_limit, limit, min_results, agent_id } = SearchLocalSchema.parse(params);
68
+ const { slot, query, hop_limit, limit, min_results, agent_id, use_relations } = SearchLocalSchema.parse(params);
63
69
  // 데이터베이스 연결 확인
64
70
  this.validateDatabase(context);
65
71
  // AnchorManager 서비스 확인
@@ -67,7 +73,8 @@ export class SearchLocalTool extends BaseTool {
67
73
  // 국소 검색 수행
68
74
  const searchResult = await context.services.anchorManager.searchLocal(agent_id, slot, query || undefined, hop_limit, {
69
75
  limit,
70
- min_results
76
+ min_results,
77
+ use_relations
71
78
  });
72
79
  return this.createSuccessResult({
73
80
  items: searchResult.items,
@@ -1 +1 @@
1
- {"version":3,"file":"search-local-tool.js","sourceRoot":"","sources":["../../src/tools/search-local-tool.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE;QAC5B,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC;KACzD,CAAC;IACF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC9C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC7C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAClD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;CACnD,CAAC,CAAC;AAEH,MAAM,OAAO,eAAgB,SAAQ,QAAQ;IAC3C;QACE,KAAK,CACH,cAAc,EACd,sBAAsB,EACtB;YACE,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;oBACrB,WAAW,EAAE,WAAW;iBACzB;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,uCAAuC;iBACrD;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,CAAC;oBACV,WAAW,EAAE,yBAAyB;iBACvC;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,GAAG;oBACZ,OAAO,EAAE,EAAE;oBACX,WAAW,EAAE,SAAS;iBACvB;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,GAAG;oBACZ,OAAO,EAAE,CAAC;oBACV,WAAW,EAAE,4BAA4B;iBAC1C;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,0BAA0B;oBACvC,OAAO,EAAE,SAAS;iBACnB;aACF;YACD,QAAQ,EAAE,CAAC,MAAM,CAAC;SACnB,CACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAW,EAAE,OAAoB;QAC5C,IAAI,CAAC;YACH,UAAU;YACV,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAEjG,eAAe;YACf,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAE/B,uBAAuB;YACvB,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;YAE/D,WAAW;YACX,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,aAAc,CAAC,WAAW,CACpE,QAAQ,EACR,IAAI,EACJ,KAAK,IAAI,SAAS,EAClB,SAAS,EACT;gBACE,KAAK;gBACL,WAAW;aACZ,CACF,CAAC;YAEF,OAAO,IAAI,CAAC,mBAAmB,CAAC;gBAC9B,KAAK,EAAE,YAAY,CAAC,KAAK;gBACzB,WAAW,EAAE,YAAY,CAAC,WAAW;gBACrC,mBAAmB,EAAE,YAAY,CAAC,mBAAmB;gBACrD,aAAa,EAAE,YAAY,CAAC,aAAa;gBACzC,UAAU,EAAE,YAAY,CAAC,UAAU;gBACnC,WAAW,EAAE,YAAY,CAAC,WAAW;aACtC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,QAAQ,CAAC,KAAc,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YAEtD,IAAI,KAAK,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAChC,MAAM,IAAI,KAAK,CAAC,aAAa,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC9E,CAAC;YAED,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"search-local-tool.js","sourceRoot":"","sources":["../../src/tools/search-local-tool.ts"],"names":[],"mappings":"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"}
@@ -42,6 +42,8 @@ export interface ToolContext {
42
42
  writeCoalescingManager?: any;
43
43
  /** 앵커 관리자 서비스 */
44
44
  anchorManager?: any;
45
+ /** 관계 그래프 서비스 */
46
+ relationGraph?: any;
45
47
  };
46
48
  }
47
49
  export type ToolHandler = (params: any, context: ToolContext) => Promise<any>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,GAAG,CAAC;IACjB,OAAO,EAAE,WAAW,CAAC;CACtB;AAED;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,kBAAkB;IAClB,EAAE,EAAE,GAAG,CAAC;IACR,QAAQ,EAAE;QACR,mBAAmB;QACnB,YAAY,CAAC,EAAE,GAAG,CAAC;QACnB,6BAA6B;QAC7B,kBAAkB,CAAC,EAAE,GAAG,CAAC;QACzB,kBAAkB;QAClB,gBAAgB,CAAC,EAAE,GAAG,CAAC;QACvB,gBAAgB;QAChB,uBAAuB,CAAC,EAAE,GAAG,CAAC;QAC9B,wBAAwB;QACxB,kBAAkB,CAAC,EAAE,GAAG,CAAC;QACzB,qBAAqB;QACrB,iBAAiB,CAAC,EAAE,GAAG,CAAC;QACxB,gBAAgB;QAChB,mBAAmB,CAAC,EAAE,GAAG,CAAC;QAC1B,gBAAgB;QAChB,uBAAuB,CAAC,EAAE,GAAG,CAAC;QAC9B,wCAAwC;QACxC,gCAAgC,CAAC,EAAE,GAAG,CAAC;QACvC,iCAAiC;QACjC,yBAAyB,CAAC,EAAE,GAAG,CAAC;QAChC,iCAAiC;QACjC,sBAAsB,CAAC,EAAE,GAAG,CAAC;QAC7B,iBAAiB;QACjB,aAAa,CAAC,EAAE,GAAG,CAAC;KACrB,CAAC;CACH;AAED,MAAM,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;AAE9E,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;IACH,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;CAuBzB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,GAAG,CAAC;IACjB,OAAO,EAAE,WAAW,CAAC;CACtB;AAED;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,kBAAkB;IAClB,EAAE,EAAE,GAAG,CAAC;IACR,QAAQ,EAAE;QACR,mBAAmB;QACnB,YAAY,CAAC,EAAE,GAAG,CAAC;QACnB,6BAA6B;QAC7B,kBAAkB,CAAC,EAAE,GAAG,CAAC;QACzB,kBAAkB;QAClB,gBAAgB,CAAC,EAAE,GAAG,CAAC;QACvB,gBAAgB;QAChB,uBAAuB,CAAC,EAAE,GAAG,CAAC;QAC9B,wBAAwB;QACxB,kBAAkB,CAAC,EAAE,GAAG,CAAC;QACzB,qBAAqB;QACrB,iBAAiB,CAAC,EAAE,GAAG,CAAC;QACxB,gBAAgB;QAChB,mBAAmB,CAAC,EAAE,GAAG,CAAC;QAC1B,gBAAgB;QAChB,uBAAuB,CAAC,EAAE,GAAG,CAAC;QAC9B,wCAAwC;QACxC,gCAAgC,CAAC,EAAE,GAAG,CAAC;QACvC,iCAAiC;QACjC,yBAAyB,CAAC,EAAE,GAAG,CAAC;QAChC,iCAAiC;QACjC,sBAAsB,CAAC,EAAE,GAAG,CAAC;QAC7B,iBAAiB;QACjB,aAAa,CAAC,EAAE,GAAG,CAAC;QACpB,iBAAiB;QACjB,aAAa,CAAC,EAAE,GAAG,CAAC;KACrB,CAAC;CACH;AAED,MAAM,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;AAE9E,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;IACH,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;CAuBzB,CAAC"}