a2a-memory 0.5.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/README.md +262 -45
  2. package/dist/adapters/anthropic.d.ts +69 -0
  3. package/dist/adapters/anthropic.d.ts.map +1 -0
  4. package/dist/adapters/anthropic.js +116 -0
  5. package/dist/adapters/anthropic.js.map +1 -0
  6. package/dist/claude/sync.d.ts +57 -0
  7. package/dist/claude/sync.d.ts.map +1 -0
  8. package/dist/claude/sync.js +201 -0
  9. package/dist/claude/sync.js.map +1 -0
  10. package/dist/cli/commands/claude-sync.d.ts +11 -0
  11. package/dist/cli/commands/claude-sync.d.ts.map +1 -0
  12. package/dist/cli/commands/claude-sync.js +69 -0
  13. package/dist/cli/commands/claude-sync.js.map +1 -0
  14. package/dist/cli/commands/health.d.ts +8 -0
  15. package/dist/cli/commands/health.d.ts.map +1 -0
  16. package/dist/cli/commands/health.js +108 -0
  17. package/dist/cli/commands/health.js.map +1 -0
  18. package/dist/cli/commands/sync.d.ts.map +1 -1
  19. package/dist/cli/commands/sync.js +52 -0
  20. package/dist/cli/commands/sync.js.map +1 -1
  21. package/dist/cli/index.js +27 -1
  22. package/dist/cli/index.js.map +1 -1
  23. package/dist/config/manager.d.ts +9 -0
  24. package/dist/config/manager.d.ts.map +1 -1
  25. package/dist/config/manager.js +74 -0
  26. package/dist/config/manager.js.map +1 -1
  27. package/dist/db/database.d.ts +4 -2
  28. package/dist/db/database.d.ts.map +1 -1
  29. package/dist/db/database.js +116 -17
  30. package/dist/db/database.js.map +1 -1
  31. package/dist/embedding/index.d.ts +1 -0
  32. package/dist/embedding/index.d.ts.map +1 -1
  33. package/dist/embedding/index.js +1 -0
  34. package/dist/embedding/index.js.map +1 -1
  35. package/dist/embedding/quantization.d.ts +34 -0
  36. package/dist/embedding/quantization.d.ts.map +1 -0
  37. package/dist/embedding/quantization.js +89 -0
  38. package/dist/embedding/quantization.js.map +1 -0
  39. package/dist/extraction/filter.d.ts.map +1 -1
  40. package/dist/extraction/filter.js +25 -3
  41. package/dist/extraction/filter.js.map +1 -1
  42. package/dist/hooks/post-tool-use.d.ts.map +1 -1
  43. package/dist/hooks/post-tool-use.js +64 -49
  44. package/dist/hooks/post-tool-use.js.map +1 -1
  45. package/dist/hooks/session-end.d.ts.map +1 -1
  46. package/dist/hooks/session-end.js +45 -28
  47. package/dist/hooks/session-end.js.map +1 -1
  48. package/dist/hooks/session-start.d.ts.map +1 -1
  49. package/dist/hooks/session-start.js +21 -3
  50. package/dist/hooks/session-start.js.map +1 -1
  51. package/dist/i18n/index.d.ts +3 -0
  52. package/dist/i18n/index.d.ts.map +1 -0
  53. package/dist/i18n/index.js +2 -0
  54. package/dist/i18n/index.js.map +1 -0
  55. package/dist/i18n/messages.d.ts +82 -0
  56. package/dist/i18n/messages.d.ts.map +1 -0
  57. package/dist/i18n/messages.js +150 -0
  58. package/dist/i18n/messages.js.map +1 -0
  59. package/dist/index.d.ts +18 -7
  60. package/dist/index.d.ts.map +1 -1
  61. package/dist/index.js +11 -3
  62. package/dist/index.js.map +1 -1
  63. package/dist/lifecycle/index.d.ts +3 -0
  64. package/dist/lifecycle/index.d.ts.map +1 -1
  65. package/dist/lifecycle/index.js +2 -0
  66. package/dist/lifecycle/index.js.map +1 -1
  67. package/dist/lifecycle/tiering.d.ts +50 -0
  68. package/dist/lifecycle/tiering.d.ts.map +1 -0
  69. package/dist/lifecycle/tiering.js +235 -0
  70. package/dist/lifecycle/tiering.js.map +1 -0
  71. package/dist/sync/client.d.ts +20 -2
  72. package/dist/sync/client.d.ts.map +1 -1
  73. package/dist/sync/client.js +82 -10
  74. package/dist/sync/client.js.map +1 -1
  75. package/dist/sync/encryption.d.ts +72 -0
  76. package/dist/sync/encryption.d.ts.map +1 -0
  77. package/dist/sync/encryption.js +203 -0
  78. package/dist/sync/encryption.js.map +1 -0
  79. package/dist/sync/index.d.ts +4 -0
  80. package/dist/sync/index.d.ts.map +1 -1
  81. package/dist/sync/index.js +3 -0
  82. package/dist/sync/index.js.map +1 -1
  83. package/dist/sync/scheduler.d.ts +69 -0
  84. package/dist/sync/scheduler.d.ts.map +1 -0
  85. package/dist/sync/scheduler.js +140 -0
  86. package/dist/sync/scheduler.js.map +1 -0
  87. package/dist/types/index.d.ts +32 -0
  88. package/dist/types/index.d.ts.map +1 -1
  89. package/dist/types/index.js +34 -4
  90. package/dist/types/index.js.map +1 -1
  91. package/dist/utils/keychain.d.ts +50 -0
  92. package/dist/utils/keychain.d.ts.map +1 -0
  93. package/dist/utils/keychain.js +166 -0
  94. package/dist/utils/keychain.js.map +1 -0
  95. package/dist/utils/logger.d.ts +16 -0
  96. package/dist/utils/logger.d.ts.map +1 -0
  97. package/dist/utils/logger.js +118 -0
  98. package/dist/utils/logger.js.map +1 -0
  99. package/package.json +1 -1
@@ -0,0 +1,150 @@
1
+ /**
2
+ * i18n Messages
3
+ *
4
+ * CLI 메시지의 다국어 지원을 위한 메시지 번들.
5
+ * 지원 언어: en (English), ko (Korean)
6
+ */
7
+ const en = {
8
+ error: 'Error',
9
+ success: 'Success',
10
+ warning: 'Warning',
11
+ notFound: 'Not found',
12
+ done: 'Done',
13
+ setupTitle: 'A2A Memory Setup',
14
+ setupComplete: 'Setup complete!',
15
+ setupDbCreated: 'Database created',
16
+ setupHooksRegistered: 'Claude Code hooks registered',
17
+ setupAlreadyDone: 'Already configured. Use --force to re-initialize.',
18
+ statusTitle: 'A2A Memory Status',
19
+ statusMemoryCount: 'Memories',
20
+ statusDbSize: 'DB Size',
21
+ statusDbPath: 'DB Path',
22
+ statusCategories: 'Categories',
23
+ statusNoMemories: 'No memories stored yet.',
24
+ searchTitle: 'Search Results',
25
+ searchNoResults: 'No results found.',
26
+ searchResultCount: (count) => `${count} result${count === 1 ? '' : 's'} found`,
27
+ listTitle: 'Memory List',
28
+ listEmpty: 'No memories match the criteria.',
29
+ addTitle: 'Add Memory',
30
+ addSuccess: 'Memory added successfully.',
31
+ editSuccess: 'Memory updated successfully.',
32
+ editNotFound: 'Memory not found.',
33
+ rmSuccess: 'Memory deleted.',
34
+ rmNotFound: 'Memory not found.',
35
+ syncTitle: 'Sync',
36
+ syncPushed: (count) => `Pushed ${count} memor${count === 1 ? 'y' : 'ies'}`,
37
+ syncPulled: (count) => `Pulled ${count} memor${count === 1 ? 'y' : 'ies'}`,
38
+ syncNoChanges: 'No changes to sync.',
39
+ syncWatchStarted: 'Watching for changes...',
40
+ syncWatchStopped: 'Sync watch stopped.',
41
+ extractTitle: 'Extract Memories',
42
+ extractNoSessions: 'No session files found.',
43
+ extractComplete: (count) => `Extracted ${count} memor${count === 1 ? 'y' : 'ies'}`,
44
+ healthTitle: 'A2A Memory Health Check',
45
+ healthDbOk: 'OK',
46
+ healthDbError: 'Error',
47
+ healthConfigOk: 'OK',
48
+ cleanupTitle: 'Memory Cleanup',
49
+ cleanupComplete: (count) => `Cleaned up ${count} memor${count === 1 ? 'y' : 'ies'}`,
50
+ cleanupNone: 'No memories to clean up.',
51
+ embedTitle: 'Embedding Management',
52
+ embedGenerated: (count) => `Generated ${count} embedding${count === 1 ? '' : 's'}`,
53
+ claudeSyncTitle: 'CLAUDE.md Sync',
54
+ claudeSyncNotFound: 'CLAUDE.md file not found.',
55
+ claudeSyncFile: 'File',
56
+ claudeSyncSections: 'Sections',
57
+ claudeSyncCreated: 'Created',
58
+ claudeSyncUpdated: 'Updated',
59
+ claudeSyncSkipped: 'Skipped (unchanged)',
60
+ };
61
+ const ko = {
62
+ error: '오류',
63
+ success: '성공',
64
+ warning: '경고',
65
+ notFound: '찾을 수 없음',
66
+ done: '완료',
67
+ setupTitle: 'A2A Memory 설정',
68
+ setupComplete: '설정이 완료되었습니다!',
69
+ setupDbCreated: '데이터베이스 생성됨',
70
+ setupHooksRegistered: 'Claude Code 훅 등록됨',
71
+ setupAlreadyDone: '이미 설정되어 있습니다. --force로 재초기화하세요.',
72
+ statusTitle: 'A2A Memory 상태',
73
+ statusMemoryCount: '메모리 수',
74
+ statusDbSize: 'DB 크기',
75
+ statusDbPath: 'DB 경로',
76
+ statusCategories: '카테고리',
77
+ statusNoMemories: '저장된 메모리가 없습니다.',
78
+ searchTitle: '검색 결과',
79
+ searchNoResults: '결과가 없습니다.',
80
+ searchResultCount: (count) => `${count}개 결과`,
81
+ listTitle: '메모리 목록',
82
+ listEmpty: '조건에 맞는 메모리가 없습니다.',
83
+ addTitle: '메모리 추가',
84
+ addSuccess: '메모리가 추가되었습니다.',
85
+ editSuccess: '메모리가 수정되었습니다.',
86
+ editNotFound: '메모리를 찾을 수 없습니다.',
87
+ rmSuccess: '메모리가 삭제되었습니다.',
88
+ rmNotFound: '메모리를 찾을 수 없습니다.',
89
+ syncTitle: '동기화',
90
+ syncPushed: (count) => `${count}개 메모리 푸시됨`,
91
+ syncPulled: (count) => `${count}개 메모리 풀됨`,
92
+ syncNoChanges: '동기화할 변경사항이 없습니다.',
93
+ syncWatchStarted: '변경사항 감시 중...',
94
+ syncWatchStopped: '동기화 감시가 중지되었습니다.',
95
+ extractTitle: '메모리 추출',
96
+ extractNoSessions: '세션 파일을 찾을 수 없습니다.',
97
+ extractComplete: (count) => `${count}개 메모리 추출됨`,
98
+ healthTitle: 'A2A Memory 상태 점검',
99
+ healthDbOk: '정상',
100
+ healthDbError: '오류',
101
+ healthConfigOk: '정상',
102
+ cleanupTitle: '메모리 정리',
103
+ cleanupComplete: (count) => `${count}개 메모리 정리됨`,
104
+ cleanupNone: '정리할 메모리가 없습니다.',
105
+ embedTitle: '임베딩 관리',
106
+ embedGenerated: (count) => `${count}개 임베딩 생성됨`,
107
+ claudeSyncTitle: 'CLAUDE.md 동기화',
108
+ claudeSyncNotFound: 'CLAUDE.md 파일을 찾을 수 없습니다.',
109
+ claudeSyncFile: '파일',
110
+ claudeSyncSections: '섹션 수',
111
+ claudeSyncCreated: '새로 추가',
112
+ claudeSyncUpdated: '업데이트',
113
+ claudeSyncSkipped: '스킵 (변경없음)',
114
+ };
115
+ const bundles = { en, ko };
116
+ let currentLocale = 'en';
117
+ /**
118
+ * Set the current locale
119
+ */
120
+ export function setLocale(locale) {
121
+ currentLocale = locale;
122
+ }
123
+ /**
124
+ * Get the current locale
125
+ */
126
+ export function getLocale() {
127
+ return currentLocale;
128
+ }
129
+ /**
130
+ * Get messages for the current locale
131
+ */
132
+ export function t() {
133
+ return bundles[currentLocale];
134
+ }
135
+ /**
136
+ * Get messages for a specific locale
137
+ */
138
+ export function getMessages(locale) {
139
+ return bundles[locale];
140
+ }
141
+ /**
142
+ * Detect locale from environment
143
+ */
144
+ export function detectLocale() {
145
+ const lang = process.env.LANG || process.env.LC_ALL || process.env.LANGUAGE || '';
146
+ if (lang.startsWith('ko'))
147
+ return 'ko';
148
+ return 'en';
149
+ }
150
+ //# sourceMappingURL=messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/i18n/messages.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * A2A Memory Plugin - Public API
3
3
  */
4
- export type { Memory, MemoryCreateInput, MemorySearchOptions, MemorySearchResult, MemoryCategory, MemoryTier, SessionMessage, SessionContentBlock, SessionInfo, ExtractionResult, A2AConfig, TeamConfig, LLMConfig, EmbeddingConfig, LifecycleConfig, MemoryQuality, VectorClockState, HookContext, SessionStartContext, PostToolUseContext, SessionEndContext, SignificanceSignal, SignificanceResult, } from './types/index.js';
4
+ export type { Memory, MemoryCreateInput, MemorySearchOptions, MemorySearchResult, MemoryCategory, MemoryTier, SessionMessage, SessionContentBlock, SessionInfo, ExtractionResult, A2AConfig, TeamConfig, LLMConfig, EmbeddingConfig, LifecycleConfig, MemoryQuality, VectorClockState, HookContext, SessionStartContext, PostToolUseContext, SessionEndContext, SignificanceSignal, SignificanceResult, QuantizationLevel, } from './types/index.js';
5
5
  export { DEFAULT_CONFIG, SENSITIVE_PATTERNS } from './types/index.js';
6
6
  export { MemoryDatabase } from './db/database.js';
7
7
  export { ConfigManager, generateNodeId, getConfigManager, resetConfigManager } from './config/manager.js';
@@ -13,14 +13,25 @@ export { handleSessionStart } from './hooks/session-start.js';
13
13
  export { handlePostToolUse } from './hooks/post-tool-use.js';
14
14
  export { handleSessionEnd } from './hooks/session-end.js';
15
15
  export { getSharedDb, closeSharedDb, resetSharedDb } from './hooks/shared.js';
16
- export { A2AClient, MemorySynchronizer, SyncQueue, LocalVectorClock, TeamSynchronizer, mapCategory, mapTier, } from './sync/index.js';
17
- export type { A2AClientConfig, RemoteMemory, SyncResult, QueueFlushResult, FlushOptions, TeamSyncResult, TeamSyncStatus, } from './sync/index.js';
16
+ export { A2AClient, MemorySynchronizer, SyncQueue, LocalVectorClock, TeamSynchronizer, SyncScheduler, mapCategory, mapTier, encryptContent, decryptContent, encryptEmbedding, decryptEmbedding, deriveKey, generateEncryptionKey, wrapEncryptedContent, unwrapEncryptedContent, isValidEncryptedPayload, } from './sync/index.js';
17
+ export type { A2AClientConfig, RemoteMemory, SyncResult, QueueFlushResult, FlushOptions, TeamSyncResult, TeamSyncStatus, SyncSchedulerOptions, SyncSchedulerStatus, EncryptedPayload, EncryptionConfig, KeyDerivationResult, } from './sync/index.js';
18
18
  export { createLLMClient, OpenAILLMClient, AnthropicLLMClient, NoOpLLMClient } from './llm/index.js';
19
19
  export type { LLMClient } from './llm/index.js';
20
- export { createEmbeddingProvider, LocalEmbeddingProvider, OpenAIEmbeddingProvider } from './embedding/index.js';
21
- export type { EmbeddingProvider } from './embedding/index.js';
20
+ export { createEmbeddingProvider, LocalEmbeddingProvider, OpenAIEmbeddingProvider, quantizeToFloat32, dequantizeFromFloat32, quantizeToInt8, dequantizeFromInt8, } from './embedding/index.js';
21
+ export type { EmbeddingProvider, QuantizationStats } from './embedding/index.js';
22
22
  export { HybridRanker } from './search/index.js';
23
23
  export type { RankedResult } from './search/index.js';
24
- export { scoreQuality, cleanupMemories } from './lifecycle/index.js';
25
- export type { CleanupResult } from './lifecycle/index.js';
24
+ export { scoreQuality, cleanupMemories, determineTier, rebalanceTiers, promoteOnAccess } from './lifecycle/index.js';
25
+ export type { CleanupResult, TieringConfig, TieringResult, StorageTier } from './lifecycle/index.js';
26
+ export type { LogLevel, LoggingConfig } from './types/index.js';
27
+ export type { HookLogger } from './utils/logger.js';
28
+ export { createLogger } from './utils/logger.js';
29
+ export type { KeychainStore } from './utils/keychain.js';
30
+ export { createKeychainStore, getKeychainStore, resetKeychainStore } from './utils/keychain.js';
31
+ export { syncClaudeMd, findClaudeMd, parseClaudeMd } from './claude/sync.js';
32
+ export type { ClaudeSyncOptions, ClaudeSyncResult, SectionResult } from './claude/sync.js';
33
+ export { t, setLocale, getLocale, detectLocale, getMessages } from './i18n/index.js';
34
+ export type { Locale, Messages } from './i18n/index.js';
35
+ export { toAnthropicFormat, fromAnthropicFormat, toAnthropicBatch, fromAnthropicBatch, mapCategoryToAnthropicType, mapAnthropicTypeToCategory, } from './adapters/anthropic.js';
36
+ export type { AnthropicMemory, AnthropicMemoryListResponse } from './adapters/anthropic.js';
26
37
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,YAAY,EACV,MAAM,EACN,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,cAAc,EACd,mBAAmB,EACnB,WAAW,EACX,gBAAgB,EAChB,SAAS,EACT,UAAU,EACV,SAAS,EACT,eAAe,EACf,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAGtE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC1G,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC7F,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACtG,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAG9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAG9E,OAAO,EACL,SAAS,EAAE,kBAAkB,EAAE,SAAS,EACxC,gBAAgB,EAAE,gBAAgB,EAClC,WAAW,EAAE,OAAO,GACrB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,eAAe,EAAE,YAAY,EAAE,UAAU,EACzC,gBAAgB,EAAE,YAAY,EAC9B,cAAc,EAAE,cAAc,GAC/B,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACrG,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGhD,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAChH,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAG9D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGtD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACrE,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -15,13 +15,21 @@ export { handlePostToolUse } from './hooks/post-tool-use.js';
15
15
  export { handleSessionEnd } from './hooks/session-end.js';
16
16
  export { getSharedDb, closeSharedDb, resetSharedDb } from './hooks/shared.js';
17
17
  // Sync
18
- export { A2AClient, MemorySynchronizer, SyncQueue, LocalVectorClock, TeamSynchronizer, mapCategory, mapTier, } from './sync/index.js';
18
+ export { A2AClient, MemorySynchronizer, SyncQueue, LocalVectorClock, TeamSynchronizer, SyncScheduler, mapCategory, mapTier, encryptContent, decryptContent, encryptEmbedding, decryptEmbedding, deriveKey, generateEncryptionKey, wrapEncryptedContent, unwrapEncryptedContent, isValidEncryptedPayload, } from './sync/index.js';
19
19
  // LLM
20
20
  export { createLLMClient, OpenAILLMClient, AnthropicLLMClient, NoOpLLMClient } from './llm/index.js';
21
21
  // Embedding
22
- export { createEmbeddingProvider, LocalEmbeddingProvider, OpenAIEmbeddingProvider } from './embedding/index.js';
22
+ export { createEmbeddingProvider, LocalEmbeddingProvider, OpenAIEmbeddingProvider, quantizeToFloat32, dequantizeFromFloat32, quantizeToInt8, dequantizeFromInt8, } from './embedding/index.js';
23
23
  // Search
24
24
  export { HybridRanker } from './search/index.js';
25
25
  // Lifecycle
26
- export { scoreQuality, cleanupMemories } from './lifecycle/index.js';
26
+ export { scoreQuality, cleanupMemories, determineTier, rebalanceTiers, promoteOnAccess } from './lifecycle/index.js';
27
+ export { createLogger } from './utils/logger.js';
28
+ export { createKeychainStore, getKeychainStore, resetKeychainStore } from './utils/keychain.js';
29
+ // Claude.md Sync
30
+ export { syncClaudeMd, findClaudeMd, parseClaudeMd } from './claude/sync.js';
31
+ // i18n
32
+ export { t, setLocale, getLocale, detectLocale, getMessages } from './i18n/index.js';
33
+ // Anthropic Adapter
34
+ export { toAnthropicFormat, fromAnthropicFormat, toAnthropicBatch, fromAnthropicBatch, mapCategoryToAnthropicType, mapAnthropicTypeToCategory, } from './adapters/anthropic.js';
27
35
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AA6BH,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtE,eAAe;AACf,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC1G,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC7F,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACtG,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9E,QAAQ;AACR,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE9E,OAAO;AACP,OAAO,EACL,SAAS,EAAE,kBAAkB,EAAE,SAAS,EACxC,gBAAgB,EAAE,gBAAgB,EAClC,WAAW,EAAE,OAAO,GACrB,MAAM,iBAAiB,CAAC;AAOzB,MAAM;AACN,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAGrG,YAAY;AACZ,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAGhH,SAAS;AACT,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,YAAY;AACZ,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AA8BH,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtE,eAAe;AACf,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC1G,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC7F,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACtG,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9E,QAAQ;AACR,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE9E,OAAO;AACP,OAAO,EACL,SAAS,EAAE,kBAAkB,EAAE,SAAS,EACxC,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,EACjD,WAAW,EAAE,OAAO,EACpB,cAAc,EAAE,cAAc,EAC9B,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,qBAAqB,EAChC,oBAAoB,EAAE,sBAAsB,EAC5C,uBAAuB,GACxB,MAAM,iBAAiB,CAAC;AASzB,MAAM;AACN,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAGrG,YAAY;AACZ,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,uBAAuB,EACvB,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,EACd,kBAAkB,GACnB,MAAM,sBAAsB,CAAC;AAG9B,SAAS;AACT,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,YAAY;AACZ,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAMrH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAIjD,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEhG,iBAAiB;AACjB,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAG7E,OAAO;AACP,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAGrF,oBAAoB;AACpB,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,yBAAyB,CAAC"}
@@ -4,9 +4,12 @@
4
4
  * 메모리 라이프사이클 관리:
5
5
  * - 품질 점수 계산
6
6
  * - TTL 및 품질 기반 정리
7
+ * - 메모리 티어링 (Hot/Warm/Cold)
7
8
  */
8
9
  export { scoreQuality } from './quality-scorer.js';
9
10
  export type { MemoryQuality } from '../types/index.js';
10
11
  export { cleanupMemories } from './cleanup.js';
11
12
  export type { CleanupResult } from './cleanup.js';
13
+ export { determineTier, rebalanceTiers, promoteOnAccess } from './tiering.js';
14
+ export type { TieringConfig, TieringResult, StorageTier } from '../types/index.js';
12
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lifecycle/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lifecycle/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC9E,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
@@ -4,7 +4,9 @@
4
4
  * 메모리 라이프사이클 관리:
5
5
  * - 품질 점수 계산
6
6
  * - TTL 및 품질 기반 정리
7
+ * - 메모리 티어링 (Hot/Warm/Cold)
7
8
  */
8
9
  export { scoreQuality } from './quality-scorer.js';
9
10
  export { cleanupMemories } from './cleanup.js';
11
+ export { determineTier, rebalanceTiers, promoteOnAccess } from './tiering.js';
10
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lifecycle/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lifecycle/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Memory Tiering Engine
3
+ *
4
+ * 메모리 접근 패턴 기반 티어링 시스템:
5
+ * - hot: 최근 hotThresholdDays 이내 접근 OR tier='core'
6
+ * - warm: 최근 warmThresholdDays 이내 접근 OR tier='active'
7
+ * - cold: 나머지 (오래된 메모리)
8
+ *
9
+ * Cold 메모리는 zlib 압축으로 저장 공간 절약.
10
+ */
11
+ import type { Memory, TieringConfig, TieringResult, StorageTier } from '../types/index.js';
12
+ import type { MemoryDatabase } from '../db/database.js';
13
+ /**
14
+ * 메모리 접근 패턴 기반 티어 결정
15
+ *
16
+ * 규칙:
17
+ * - tier='working' (core) → 항상 hot (강등 불가)
18
+ * - tier='episodic' (active) → 접근 시간과 관계없이 warm 이상
19
+ * - 나머지: lastAccessedAt 기준 hot/warm/cold 분류
20
+ *
21
+ * @param memory - 메모리 객체
22
+ * @param config - 티어링 설정
23
+ * @returns 결정된 storage tier
24
+ */
25
+ export declare function determineTier(memory: Memory, config: TieringConfig): StorageTier;
26
+ /**
27
+ * 전체 메모리 티어 재계산 및 재배치
28
+ *
29
+ * 1. 모든 메모리의 적절한 티어 결정
30
+ * 2. 현재 티어와 비교하여 승격/강등 카운트
31
+ * 3. cold 티어 메모리 압축 (설정 활성화 시)
32
+ * 4. DB 업데이트
33
+ *
34
+ * @param db - 메모리 데이터베이스
35
+ * @param config - 티어링 설정
36
+ * @returns 티어링 결과 (승격/강등/압축 수)
37
+ */
38
+ export declare function rebalanceTiers(db: MemoryDatabase, config: TieringConfig): TieringResult;
39
+ /**
40
+ * 메모리 접근 시 자동 승격
41
+ *
42
+ * autoPromote 설정이 활성화되어 있고,
43
+ * 현재 cold/warm 티어인 메모리를 hot으로 승격합니다.
44
+ *
45
+ * @param db - 메모리 데이터베이스
46
+ * @param memoryId - 메모리 ID
47
+ * @param config - 티어링 설정
48
+ */
49
+ export declare function promoteOnAccess(db: MemoryDatabase, memoryId: string, config: TieringConfig): void;
50
+ //# sourceMappingURL=tiering.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tiering.d.ts","sourceRoot":"","sources":["../../src/lifecycle/tiering.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC3F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAIxD;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,WAAW,CAwChF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,GAAG,aAAa,CAgEvF;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,EAAE,EAAE,cAAc,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,aAAa,GACpB,IAAI,CAuBN"}
@@ -0,0 +1,235 @@
1
+ /**
2
+ * Memory Tiering Engine
3
+ *
4
+ * 메모리 접근 패턴 기반 티어링 시스템:
5
+ * - hot: 최근 hotThresholdDays 이내 접근 OR tier='core'
6
+ * - warm: 최근 warmThresholdDays 이내 접근 OR tier='active'
7
+ * - cold: 나머지 (오래된 메모리)
8
+ *
9
+ * Cold 메모리는 zlib 압축으로 저장 공간 절약.
10
+ */
11
+ import { gzipSync, gunzipSync } from 'node:zlib';
12
+ const COMPRESSED_PREFIX = 'COMPRESSED:';
13
+ /**
14
+ * 메모리 접근 패턴 기반 티어 결정
15
+ *
16
+ * 규칙:
17
+ * - tier='working' (core) → 항상 hot (강등 불가)
18
+ * - tier='episodic' (active) → 접근 시간과 관계없이 warm 이상
19
+ * - 나머지: lastAccessedAt 기준 hot/warm/cold 분류
20
+ *
21
+ * @param memory - 메모리 객체
22
+ * @param config - 티어링 설정
23
+ * @returns 결정된 storage tier
24
+ */
25
+ export function determineTier(memory, config) {
26
+ // core 티어는 항상 hot
27
+ if (memory.tier === 'working') {
28
+ return 'hot';
29
+ }
30
+ // episodic 티어는 최소 warm 보장 (접근 시간 무관)
31
+ if (memory.tier === 'episodic') {
32
+ // 단, 접근 기록이 있으면 hot 승격 가능
33
+ if (memory.lastAccessedAt) {
34
+ const daysSinceAccess = getDaysSince(memory.lastAccessedAt);
35
+ if (daysSinceAccess <= config.hotThresholdDays) {
36
+ return 'hot';
37
+ }
38
+ }
39
+ return 'warm';
40
+ }
41
+ // semantic 티어: 접근 패턴 기반
42
+ if (!memory.lastAccessedAt) {
43
+ // 접근 기록 없음 → createdAt 기준
44
+ const daysSinceCreation = getDaysSince(memory.createdAt);
45
+ if (daysSinceCreation <= config.hotThresholdDays) {
46
+ return 'hot';
47
+ }
48
+ if (daysSinceCreation <= config.warmThresholdDays) {
49
+ return 'warm';
50
+ }
51
+ return 'cold';
52
+ }
53
+ const daysSinceAccess = getDaysSince(memory.lastAccessedAt);
54
+ if (daysSinceAccess <= config.hotThresholdDays) {
55
+ return 'hot';
56
+ }
57
+ if (daysSinceAccess <= config.warmThresholdDays) {
58
+ return 'warm';
59
+ }
60
+ return 'cold';
61
+ }
62
+ /**
63
+ * 전체 메모리 티어 재계산 및 재배치
64
+ *
65
+ * 1. 모든 메모리의 적절한 티어 결정
66
+ * 2. 현재 티어와 비교하여 승격/강등 카운트
67
+ * 3. cold 티어 메모리 압축 (설정 활성화 시)
68
+ * 4. DB 업데이트
69
+ *
70
+ * @param db - 메모리 데이터베이스
71
+ * @param config - 티어링 설정
72
+ * @returns 티어링 결과 (승격/강등/압축 수)
73
+ */
74
+ export function rebalanceTiers(db, config) {
75
+ if (!config.enabled) {
76
+ return { promoted: 0, demoted: 0, compressed: 0, totalProcessed: 0 };
77
+ }
78
+ const allMemories = db.listMemories({ limit: 999999 });
79
+ let promoted = 0;
80
+ let demoted = 0;
81
+ let compressed = 0;
82
+ for (const memory of allMemories) {
83
+ const currentTier = getStorageTier(memory);
84
+ const targetTier = determineTier(memory, config);
85
+ // 티어 변경 필요 여부 확인
86
+ if (currentTier === targetTier) {
87
+ // 티어 변경 없음, 압축 상태만 확인
88
+ if (targetTier === 'cold' && config.coldCompressionEnabled) {
89
+ if (!isCompressed(memory.content)) {
90
+ const compressedContent = compressContent(memory.content);
91
+ db.updateMemory(memory.id, { content: compressedContent });
92
+ compressed++;
93
+ }
94
+ }
95
+ continue;
96
+ }
97
+ // 티어 변경 필요
98
+ const tierRank = { hot: 2, warm: 1, cold: 0 };
99
+ if (tierRank[targetTier] > tierRank[currentTier]) {
100
+ promoted++;
101
+ }
102
+ else {
103
+ demoted++;
104
+ }
105
+ // content 압축/해제 처리
106
+ let newContent = memory.content;
107
+ if (targetTier === 'cold' && config.coldCompressionEnabled) {
108
+ // cold로 강등 → 압축
109
+ if (!isCompressed(memory.content)) {
110
+ newContent = compressContent(memory.content);
111
+ compressed++;
112
+ }
113
+ }
114
+ else if (currentTier === 'cold' && isCompressed(memory.content)) {
115
+ // cold에서 승격 → 압축 해제
116
+ newContent = decompressContent(memory.content);
117
+ }
118
+ // 메타데이터 업데이트 (storage tier는 메타데이터로 추적)
119
+ // Memory.tier는 semantic tier이므로 변경하지 않음
120
+ // storage tier는 별도 필드나 tags로 관리 필요
121
+ // 현재 구현에서는 content만 압축/해제 처리
122
+ if (newContent !== memory.content) {
123
+ db.updateMemory(memory.id, { content: newContent });
124
+ }
125
+ }
126
+ return {
127
+ promoted,
128
+ demoted,
129
+ compressed,
130
+ totalProcessed: allMemories.length,
131
+ };
132
+ }
133
+ /**
134
+ * 메모리 접근 시 자동 승격
135
+ *
136
+ * autoPromote 설정이 활성화되어 있고,
137
+ * 현재 cold/warm 티어인 메모리를 hot으로 승격합니다.
138
+ *
139
+ * @param db - 메모리 데이터베이스
140
+ * @param memoryId - 메모리 ID
141
+ * @param config - 티어링 설정
142
+ */
143
+ export function promoteOnAccess(db, memoryId, config) {
144
+ if (!config.enabled || !config.autoPromote) {
145
+ return;
146
+ }
147
+ // DB에서 조회하지 않고, 이미 조회된 메모리를 받아 처리하는 것이 효율적이지만
148
+ // 현재 API 구조상 id만 받으므로 재조회 필요
149
+ const memory = db.getMemory(memoryId);
150
+ if (!memory) {
151
+ return;
152
+ }
153
+ const currentTier = getStorageTier(memory);
154
+ const targetTier = determineTier(memory, config);
155
+ // hot으로 승격 필요한 경우
156
+ if (targetTier === 'hot' && currentTier !== 'hot') {
157
+ // 압축 해제
158
+ if (isCompressed(memory.content)) {
159
+ const decompressedContent = decompressContent(memory.content);
160
+ db.updateMemory(memoryId, { content: decompressedContent });
161
+ }
162
+ }
163
+ }
164
+ // ============================
165
+ // Helper Functions
166
+ // ============================
167
+ /**
168
+ * 메모리의 현재 storage tier 추정
169
+ * (실제로는 별도 필드가 필요하지만, 현재는 압축 여부로 판단)
170
+ */
171
+ function getStorageTier(memory) {
172
+ // core는 항상 hot
173
+ if (memory.tier === 'working') {
174
+ return 'hot';
175
+ }
176
+ // 압축되어 있으면 cold
177
+ if (isCompressed(memory.content)) {
178
+ return 'cold';
179
+ }
180
+ // episodic은 기본 warm
181
+ if (memory.tier === 'episodic') {
182
+ return 'warm';
183
+ }
184
+ // semantic은 접근 패턴 기반 추정
185
+ if (!memory.lastAccessedAt) {
186
+ const daysSinceCreation = getDaysSince(memory.createdAt);
187
+ if (daysSinceCreation <= 7)
188
+ return 'hot';
189
+ if (daysSinceCreation <= 30)
190
+ return 'warm';
191
+ return 'cold';
192
+ }
193
+ const daysSinceAccess = getDaysSince(memory.lastAccessedAt);
194
+ if (daysSinceAccess <= 7)
195
+ return 'hot';
196
+ if (daysSinceAccess <= 30)
197
+ return 'warm';
198
+ return 'cold';
199
+ }
200
+ /**
201
+ * ISO 8601 문자열에서 현재까지의 일수 계산
202
+ */
203
+ function getDaysSince(isoDate) {
204
+ const date = new Date(isoDate);
205
+ const now = new Date();
206
+ const diffMs = now.getTime() - date.getTime();
207
+ return Math.floor(diffMs / (1000 * 60 * 60 * 24));
208
+ }
209
+ /**
210
+ * content가 압축되어 있는지 확인
211
+ */
212
+ function isCompressed(content) {
213
+ return content.startsWith(COMPRESSED_PREFIX);
214
+ }
215
+ /**
216
+ * content 압축 (zlib gzip)
217
+ */
218
+ function compressContent(content) {
219
+ const buffer = Buffer.from(content, 'utf-8');
220
+ const compressed = gzipSync(buffer);
221
+ return COMPRESSED_PREFIX + compressed.toString('base64');
222
+ }
223
+ /**
224
+ * content 압축 해제
225
+ */
226
+ function decompressContent(content) {
227
+ if (!isCompressed(content)) {
228
+ return content;
229
+ }
230
+ const base64Data = content.slice(COMPRESSED_PREFIX.length);
231
+ const compressed = Buffer.from(base64Data, 'base64');
232
+ const decompressed = gunzipSync(compressed);
233
+ return decompressed.toString('utf-8');
234
+ }
235
+ //# sourceMappingURL=tiering.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tiering.js","sourceRoot":"","sources":["../../src/lifecycle/tiering.ts"],"names":[],"mappings":"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"}
@@ -24,7 +24,20 @@ export interface RemoteMemory {
24
24
  export declare class A2AClient {
25
25
  private config;
26
26
  private timeout;
27
+ private encryptionKey;
27
28
  constructor(config: A2AClientConfig);
29
+ /**
30
+ * 암호화 키 설정
31
+ */
32
+ setEncryptionKey(key: Buffer): void;
33
+ /**
34
+ * 암호화 키 해제
35
+ */
36
+ clearEncryptionKey(): void;
37
+ /**
38
+ * 암호화 활성화 여부
39
+ */
40
+ isEncryptionEnabled(): boolean;
28
41
  /**
29
42
  * 메모리 생성
30
43
  */
@@ -49,6 +62,10 @@ export declare class A2AClient {
49
62
  offset?: number;
50
63
  includeEmbedding?: boolean;
51
64
  }): Promise<RemoteMemory[]>;
65
+ /**
66
+ * 메모리 복호화 헬퍼
67
+ */
68
+ private decryptMemory;
52
69
  /**
53
70
  * 메모리 업데이트
54
71
  */
@@ -118,9 +135,10 @@ export declare class A2AClient {
118
135
  */
119
136
  reinforceMemory(id: string): Promise<RemoteMemory>;
120
137
  /**
121
- * 메모리 승격 (티어 변경)
138
+ * 메모리 승격 (semantic tier로 고정)
139
+ * NOTE: 서버는 target_tier 파라미터를 무시하고 항상 semantic으로 승격합니다.
122
140
  */
123
- promoteMemory(id: string, targetTier: string): Promise<RemoteMemory>;
141
+ promoteMemory(id: string, _targetTier?: string): Promise<RemoteMemory>;
124
142
  /**
125
143
  * 통계 조회
126
144
  */