a2a-memory 0.9.0 → 0.10.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 (142) hide show
  1. package/dist/cli/commands/add.d.ts.map +1 -1
  2. package/dist/cli/commands/add.js +1 -0
  3. package/dist/cli/commands/add.js.map +1 -1
  4. package/dist/cli/commands/claude-sync.d.ts.map +1 -1
  5. package/dist/cli/commands/claude-sync.js +1 -0
  6. package/dist/cli/commands/claude-sync.js.map +1 -1
  7. package/dist/cli/commands/cleanup.d.ts.map +1 -1
  8. package/dist/cli/commands/cleanup.js +1 -0
  9. package/dist/cli/commands/cleanup.js.map +1 -1
  10. package/dist/cli/commands/config.d.ts.map +1 -1
  11. package/dist/cli/commands/config.js +2 -0
  12. package/dist/cli/commands/config.js.map +1 -1
  13. package/dist/cli/commands/edit.d.ts.map +1 -1
  14. package/dist/cli/commands/edit.js +3 -0
  15. package/dist/cli/commands/edit.js.map +1 -1
  16. package/dist/cli/commands/embed.d.ts.map +1 -1
  17. package/dist/cli/commands/embed.js +1 -0
  18. package/dist/cli/commands/embed.js.map +1 -1
  19. package/dist/cli/commands/proficiency.d.ts.map +1 -1
  20. package/dist/cli/commands/proficiency.js +4 -0
  21. package/dist/cli/commands/proficiency.js.map +1 -1
  22. package/dist/cli/commands/rm.d.ts.map +1 -1
  23. package/dist/cli/commands/rm.js +4 -0
  24. package/dist/cli/commands/rm.js.map +1 -1
  25. package/dist/cli/commands/search.d.ts.map +1 -1
  26. package/dist/cli/commands/search.js +52 -8
  27. package/dist/cli/commands/search.js.map +1 -1
  28. package/dist/cli/commands/setup.js +24 -0
  29. package/dist/cli/commands/setup.js.map +1 -1
  30. package/dist/cli/commands/skill.d.ts.map +1 -1
  31. package/dist/cli/commands/skill.js +16 -1
  32. package/dist/cli/commands/skill.js.map +1 -1
  33. package/dist/cli/commands/sync.d.ts.map +1 -1
  34. package/dist/cli/commands/sync.js +3 -0
  35. package/dist/cli/commands/sync.js.map +1 -1
  36. package/dist/config/manager.d.ts +67 -13
  37. package/dist/config/manager.d.ts.map +1 -1
  38. package/dist/config/manager.js +20 -5
  39. package/dist/config/manager.js.map +1 -1
  40. package/dist/db/database.d.ts +5 -0
  41. package/dist/db/database.d.ts.map +1 -1
  42. package/dist/db/database.js +47 -24
  43. package/dist/db/database.js.map +1 -1
  44. package/dist/embedding/e5-provider.d.ts +41 -0
  45. package/dist/embedding/e5-provider.d.ts.map +1 -0
  46. package/dist/embedding/e5-provider.js +147 -0
  47. package/dist/embedding/e5-provider.js.map +1 -0
  48. package/dist/embedding/index.d.ts +1 -0
  49. package/dist/embedding/index.d.ts.map +1 -1
  50. package/dist/embedding/index.js +5 -0
  51. package/dist/embedding/index.js.map +1 -1
  52. package/dist/extraction/dedup-manager.d.ts +40 -0
  53. package/dist/extraction/dedup-manager.d.ts.map +1 -0
  54. package/dist/extraction/dedup-manager.js +148 -0
  55. package/dist/extraction/dedup-manager.js.map +1 -0
  56. package/dist/extraction/extractor.d.ts.map +1 -1
  57. package/dist/extraction/extractor.js +23 -6
  58. package/dist/extraction/extractor.js.map +1 -1
  59. package/dist/extraction/filter.d.ts.map +1 -1
  60. package/dist/extraction/filter.js +3 -0
  61. package/dist/extraction/filter.js.map +1 -1
  62. package/dist/extraction/scorer.js +23 -12
  63. package/dist/extraction/scorer.js.map +1 -1
  64. package/dist/hooks/client-factory.d.ts +14 -0
  65. package/dist/hooks/client-factory.d.ts.map +1 -0
  66. package/dist/hooks/client-factory.js +22 -0
  67. package/dist/hooks/client-factory.js.map +1 -0
  68. package/dist/hooks/post-tool-use.d.ts.map +1 -1
  69. package/dist/hooks/post-tool-use.js +104 -24
  70. package/dist/hooks/post-tool-use.js.map +1 -1
  71. package/dist/hooks/pre-compact.d.ts +15 -0
  72. package/dist/hooks/pre-compact.d.ts.map +1 -0
  73. package/dist/hooks/pre-compact.js +209 -0
  74. package/dist/hooks/pre-compact.js.map +1 -0
  75. package/dist/hooks/session-end.d.ts.map +1 -1
  76. package/dist/hooks/session-end.js +271 -256
  77. package/dist/hooks/session-end.js.map +1 -1
  78. package/dist/hooks/session-start.d.ts +1 -0
  79. package/dist/hooks/session-start.d.ts.map +1 -1
  80. package/dist/hooks/session-start.js +221 -138
  81. package/dist/hooks/session-start.js.map +1 -1
  82. package/dist/hooks/shared.d.ts +10 -0
  83. package/dist/hooks/shared.d.ts.map +1 -1
  84. package/dist/hooks/shared.js +64 -0
  85. package/dist/hooks/shared.js.map +1 -1
  86. package/dist/hooks/user-prompt-submit.d.ts +15 -0
  87. package/dist/hooks/user-prompt-submit.d.ts.map +1 -0
  88. package/dist/hooks/user-prompt-submit.js +240 -0
  89. package/dist/hooks/user-prompt-submit.js.map +1 -0
  90. package/dist/index.d.ts +11 -3
  91. package/dist/index.d.ts.map +1 -1
  92. package/dist/index.js +8 -2
  93. package/dist/index.js.map +1 -1
  94. package/dist/lifecycle/quality-scorer.d.ts +2 -2
  95. package/dist/lifecycle/quality-scorer.d.ts.map +1 -1
  96. package/dist/lifecycle/quality-scorer.js +13 -7
  97. package/dist/lifecycle/quality-scorer.js.map +1 -1
  98. package/dist/lifecycle/tiering.d.ts.map +1 -1
  99. package/dist/lifecycle/tiering.js +11 -1
  100. package/dist/lifecycle/tiering.js.map +1 -1
  101. package/dist/proficiency/detection.d.ts +2 -4
  102. package/dist/proficiency/detection.d.ts.map +1 -1
  103. package/dist/proficiency/detection.js +11 -15
  104. package/dist/proficiency/detection.js.map +1 -1
  105. package/dist/proficiency/tracker.d.ts +2 -2
  106. package/dist/proficiency/tracker.d.ts.map +1 -1
  107. package/dist/proficiency/tracker.js +10 -7
  108. package/dist/proficiency/tracker.js.map +1 -1
  109. package/dist/search/adaptive-router.d.ts +28 -0
  110. package/dist/search/adaptive-router.d.ts.map +1 -0
  111. package/dist/search/adaptive-router.js +93 -0
  112. package/dist/search/adaptive-router.js.map +1 -0
  113. package/dist/search/ranker.d.ts +4 -0
  114. package/dist/search/ranker.d.ts.map +1 -1
  115. package/dist/search/ranker.js +4 -0
  116. package/dist/search/ranker.js.map +1 -1
  117. package/dist/search/reranker.d.ts +48 -0
  118. package/dist/search/reranker.d.ts.map +1 -0
  119. package/dist/search/reranker.js +155 -0
  120. package/dist/search/reranker.js.map +1 -0
  121. package/dist/skill/evaluator.d.ts +7 -9
  122. package/dist/skill/evaluator.d.ts.map +1 -1
  123. package/dist/skill/evaluator.js +122 -33
  124. package/dist/skill/evaluator.js.map +1 -1
  125. package/dist/skill/types.d.ts +5 -0
  126. package/dist/skill/types.d.ts.map +1 -1
  127. package/dist/sync/client.d.ts +26 -1
  128. package/dist/sync/client.d.ts.map +1 -1
  129. package/dist/sync/client.js +81 -28
  130. package/dist/sync/client.js.map +1 -1
  131. package/dist/sync/queue.d.ts +1 -1
  132. package/dist/sync/queue.d.ts.map +1 -1
  133. package/dist/sync/queue.js +20 -28
  134. package/dist/sync/queue.js.map +1 -1
  135. package/dist/sync/synchronizer.js +1 -1
  136. package/dist/sync/synchronizer.js.map +1 -1
  137. package/dist/sync/team-synchronizer.js.map +1 -1
  138. package/dist/types/index.d.ts +19 -2
  139. package/dist/types/index.d.ts.map +1 -1
  140. package/dist/types/index.js +11 -3
  141. package/dist/types/index.js.map +1 -1
  142. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/db/database.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/db/database.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * E5 Embedding Provider (e5-small-v2, 384d)
3
+ *
4
+ * @huggingface/transformers 기반 로컬 임베딩.
5
+ * TF-IDF 64차원 대비 의미 검색 정확도 비약적 향상.
6
+ *
7
+ * 특징:
8
+ * - 384차원 dense vector
9
+ * - ONNX Runtime 기반 (~16ms/query CPU)
10
+ * - 모델 자동 다운로드 + 캐싱 (~66MB)
11
+ * - 싱글톤 세션 관리
12
+ *
13
+ * 설치: npm install @huggingface/transformers (optional dependency)
14
+ */
15
+ import type { EmbeddingProvider } from './index.js';
16
+ export declare class E5EmbeddingProvider implements EmbeddingProvider {
17
+ private dimensions;
18
+ constructor(dimensions?: number);
19
+ /**
20
+ * 단일 텍스트 임베딩 생성
21
+ * e5 모델은 "query: " 또는 "passage: " prefix가 필요
22
+ */
23
+ embed(text: string): Promise<number[]>;
24
+ /**
25
+ * 배치 임베딩 생성
26
+ */
27
+ embedBatch(texts: string[]): Promise<number[][]>;
28
+ /**
29
+ * 프로바이더 사용 가능 여부 확인
30
+ */
31
+ static isAvailable(): Promise<boolean>;
32
+ /**
33
+ * 차원 수 반환
34
+ */
35
+ getDimensions(): number;
36
+ }
37
+ /**
38
+ * 싱글톤 파이프라인 리셋 (테스트용)
39
+ */
40
+ export declare function resetE5Pipeline(): void;
41
+ //# sourceMappingURL=e5-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"e5-provider.d.ts","sourceRoot":"","sources":["../../src/embedding/e5-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAiFpD,qBAAa,mBAAoB,YAAW,iBAAiB;IAC3D,OAAO,CAAC,UAAU,CAAS;gBAEf,UAAU,CAAC,EAAE,MAAM;IAI/B;;;OAGG;IACG,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA0B5C;;OAEG;IACG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;IAQtD;;OAEG;WACU,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAS5C;;OAEG;IACH,aAAa,IAAI,MAAM;CAGxB;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAGtC"}
@@ -0,0 +1,147 @@
1
+ /**
2
+ * E5 Embedding Provider (e5-small-v2, 384d)
3
+ *
4
+ * @huggingface/transformers 기반 로컬 임베딩.
5
+ * TF-IDF 64차원 대비 의미 검색 정확도 비약적 향상.
6
+ *
7
+ * 특징:
8
+ * - 384차원 dense vector
9
+ * - ONNX Runtime 기반 (~16ms/query CPU)
10
+ * - 모델 자동 다운로드 + 캐싱 (~66MB)
11
+ * - 싱글톤 세션 관리
12
+ *
13
+ * 설치: npm install @huggingface/transformers (optional dependency)
14
+ */
15
+ const MODEL_NAME = 'intfloat/e5-small-v2';
16
+ const DIMENSIONS = 384;
17
+ // 싱글톤 파이프라인
18
+ let _pipeline = null;
19
+ let _loading = null;
20
+ /**
21
+ * transformers 파이프라인을 지연 로드 (최초 1회, ~500ms)
22
+ */
23
+ async function getPipeline() {
24
+ if (_pipeline)
25
+ return _pipeline;
26
+ if (_loading)
27
+ return _loading;
28
+ _loading = (async () => {
29
+ try {
30
+ // 동적 import로 optional dependency 처리
31
+ // Dynamic import for optional dependency
32
+ const mod = await Function('return import("@huggingface/transformers")')();
33
+ _pipeline = await mod.pipeline('feature-extraction', MODEL_NAME, {
34
+ quantized: true, // 양자화 모델 사용 (더 작고 빠름)
35
+ });
36
+ return _pipeline;
37
+ }
38
+ catch (err) {
39
+ _loading = null;
40
+ throw new Error(`E5 embedding provider requires @huggingface/transformers. ` +
41
+ `Install: npm install @huggingface/transformers\n` +
42
+ `Original error: ${err instanceof Error ? err.message : String(err)}`);
43
+ }
44
+ })();
45
+ return _loading;
46
+ }
47
+ /**
48
+ * L2 정규화
49
+ */
50
+ function normalize(vector) {
51
+ const norm = Math.sqrt(vector.reduce((sum, val) => sum + val * val, 0));
52
+ if (norm === 0)
53
+ return vector;
54
+ return vector.map(val => val / norm);
55
+ }
56
+ /**
57
+ * Mean pooling: 모든 토큰의 임베딩을 평균
58
+ */
59
+ function meanPool(output) {
60
+ // output shape: [1, seq_len, hidden_size]
61
+ const data = output.data || output;
62
+ if (Array.isArray(data) || ArrayBuffer.isView(data)) {
63
+ // Flat array → reshape + pool
64
+ const arr = Array.from(data);
65
+ const seqLen = arr.length / DIMENSIONS;
66
+ if (seqLen === 0)
67
+ return new Array(DIMENSIONS).fill(0);
68
+ const result = new Array(DIMENSIONS).fill(0);
69
+ for (let i = 0; i < seqLen; i++) {
70
+ for (let j = 0; j < DIMENSIONS; j++) {
71
+ result[j] += arr[i * DIMENSIONS + j];
72
+ }
73
+ }
74
+ for (let j = 0; j < DIMENSIONS; j++) {
75
+ result[j] /= seqLen;
76
+ }
77
+ return result;
78
+ }
79
+ // 이미 올바른 shape이면 그대로 반환
80
+ return Array.from(data).slice(0, DIMENSIONS);
81
+ }
82
+ export class E5EmbeddingProvider {
83
+ dimensions;
84
+ constructor(dimensions) {
85
+ this.dimensions = dimensions || DIMENSIONS;
86
+ }
87
+ /**
88
+ * 단일 텍스트 임베딩 생성
89
+ * e5 모델은 "query: " 또는 "passage: " prefix가 필요
90
+ */
91
+ async embed(text) {
92
+ const pipe = await getPipeline();
93
+ // e5 모델은 query prefix 추가 시 검색 성능 향상
94
+ const prefixedText = text.startsWith('query:') || text.startsWith('passage:')
95
+ ? text
96
+ : `query: ${text}`;
97
+ const output = await pipe(prefixedText, {
98
+ pooling: 'mean',
99
+ normalize: true,
100
+ });
101
+ // transformers.js는 pooling+normalize 결과를 직접 반환
102
+ const vector = Array.from(output.data || output);
103
+ // 차원 맞추기
104
+ if (vector.length >= this.dimensions) {
105
+ return vector.slice(0, this.dimensions);
106
+ }
107
+ // mean pooling fallback
108
+ const pooled = meanPool(output);
109
+ return normalize(pooled);
110
+ }
111
+ /**
112
+ * 배치 임베딩 생성
113
+ */
114
+ async embedBatch(texts) {
115
+ const results = [];
116
+ for (const text of texts) {
117
+ results.push(await this.embed(text));
118
+ }
119
+ return results;
120
+ }
121
+ /**
122
+ * 프로바이더 사용 가능 여부 확인
123
+ */
124
+ static async isAvailable() {
125
+ try {
126
+ await Function('return import("@huggingface/transformers")')();
127
+ return true;
128
+ }
129
+ catch {
130
+ return false;
131
+ }
132
+ }
133
+ /**
134
+ * 차원 수 반환
135
+ */
136
+ getDimensions() {
137
+ return this.dimensions;
138
+ }
139
+ }
140
+ /**
141
+ * 싱글톤 파이프라인 리셋 (테스트용)
142
+ */
143
+ export function resetE5Pipeline() {
144
+ _pipeline = null;
145
+ _loading = null;
146
+ }
147
+ //# sourceMappingURL=e5-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"e5-provider.js","sourceRoot":"","sources":["../../src/embedding/e5-provider.ts"],"names":[],"mappings":"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"}
@@ -17,5 +17,6 @@ export interface EmbeddingProvider {
17
17
  export declare function createEmbeddingProvider(config: EmbeddingConfig, llmConfig?: LLMConfig): EmbeddingProvider;
18
18
  export { LocalEmbeddingProvider } from './local-provider.js';
19
19
  export { OpenAIEmbeddingProvider } from './openai-provider.js';
20
+ export { E5EmbeddingProvider, resetE5Pipeline } from './e5-provider.js';
20
21
  export { quantizeToFloat32, dequantizeFromFloat32, quantizeToInt8, dequantizeFromInt8, type QuantizationLevel, type QuantizationStats, } from './quantization.js';
21
22
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/embedding/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEpE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAClD,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;CAC/D;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,eAAe,EACvB,SAAS,CAAC,EAAE,SAAS,GACpB,iBAAiB,CAgBnB;AAED,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,EACd,kBAAkB,EAClB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,GACvB,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/embedding/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEpE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAClD,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;CAC/D;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,eAAe,EACvB,SAAS,CAAC,EAAE,SAAS,GACpB,iBAAiB,CAoBnB;AAED,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,EACd,kBAAkB,EAClB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,GACvB,MAAM,mBAAmB,CAAC"}
@@ -5,6 +5,7 @@
5
5
  */
6
6
  import { LocalEmbeddingProvider } from './local-provider.js';
7
7
  import { OpenAIEmbeddingProvider } from './openai-provider.js';
8
+ import { E5EmbeddingProvider } from './e5-provider.js';
8
9
  /**
9
10
  * 임베딩 프로바이더 생성 팩토리
10
11
  */
@@ -12,6 +13,9 @@ export function createEmbeddingProvider(config, llmConfig) {
12
13
  if (config.provider === 'local') {
13
14
  return new LocalEmbeddingProvider(config.dimensions);
14
15
  }
16
+ if (config.provider === 'e5') {
17
+ return new E5EmbeddingProvider(config.dimensions || 384);
18
+ }
15
19
  if (config.provider === 'openai') {
16
20
  // OpenAI는 llmConfig에서 apiKey 가져옴
17
21
  if (!llmConfig?.apiKey) {
@@ -25,5 +29,6 @@ export function createEmbeddingProvider(config, llmConfig) {
25
29
  }
26
30
  export { LocalEmbeddingProvider } from './local-provider.js';
27
31
  export { OpenAIEmbeddingProvider } from './openai-provider.js';
32
+ export { E5EmbeddingProvider, resetE5Pipeline } from './e5-provider.js';
28
33
  export { quantizeToFloat32, dequantizeFromFloat32, quantizeToInt8, dequantizeFromInt8, } from './quantization.js';
29
34
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/embedding/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAW/D;;GAEG;AACH,MAAM,UAAU,uBAAuB,CACrC,MAAuB,EACvB,SAAqB;IAErB,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QAChC,OAAO,IAAI,sBAAsB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,iCAAiC;QACjC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,IAAI,uBAAuB,CAAC;YACjC,MAAM,EAAE,SAAS,CAAC,MAAM;SACzB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,mCAAmC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxE,CAAC;AAED,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,EACd,kBAAkB,GAGnB,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/embedding/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAWvD;;GAEG;AACH,MAAM,UAAU,uBAAuB,CACrC,MAAuB,EACvB,SAAqB;IAErB,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QAChC,OAAO,IAAI,sBAAsB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QAC7B,OAAO,IAAI,mBAAmB,CAAC,MAAM,CAAC,UAAU,IAAI,GAAG,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,iCAAiC;QACjC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,IAAI,uBAAuB,CAAC;YACjC,MAAM,EAAE,SAAS,CAAC,MAAM;SACzB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,mCAAmC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxE,CAAC;AAED,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,EACd,kBAAkB,GAGnB,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Mem0-style 4-Way Memory Deduplication Manager
3
+ *
4
+ * 새 메모리 생성 전 기존 메모리와 비교하여 최적의 동작 결정:
5
+ * - ADD: 유사 메모리 없음 → 새로 생성
6
+ * - UPDATE: 유사도 > 0.8 → 기존 메모리 내용 병합/갱신
7
+ * - DELETE: 새 정보가 기존을 무효화 → 기존 삭제 후 새로 생성
8
+ * - NOOP: 유사도 > 0.95 → 완전 중복, 무시
9
+ */
10
+ import type { Memory, MemoryCategory } from '../types/index.js';
11
+ export type DedupAction = 'ADD' | 'UPDATE' | 'DELETE' | 'NOOP';
12
+ export interface DedupDecision {
13
+ action: DedupAction;
14
+ /** UPDATE/DELETE 시 대상 메모리 */
15
+ targetMemory?: Memory;
16
+ /** 유사도 점수 (0~1) */
17
+ similarity: number;
18
+ /** 판단 근거 */
19
+ reason: string;
20
+ }
21
+ export declare class DedupManager {
22
+ /**
23
+ * 4-Way 판단: 새 콘텐츠를 기존 메모리와 비교
24
+ *
25
+ * @param newContent 새로 저장할 콘텐츠
26
+ * @param existingMemories 비교 대상 기존 메모리 (동일 프로젝트+카테고리)
27
+ * @param newEmbedding 새 콘텐츠의 임베딩 (있으면 코사인 유사도 사용)
28
+ */
29
+ decide(newContent: string, existingMemories: Memory[], newEmbedding?: number[]): DedupDecision;
30
+ /**
31
+ * 두 메모리 콘텐츠를 병합 (UPDATE용)
32
+ * 기존 콘텐츠 + 새 정보 추가
33
+ */
34
+ mergeContent(existingContent: string, newContent: string): string;
35
+ /**
36
+ * 기존 메모리에서 유사한 것들을 찾아 비교 대상 목록 구성
37
+ */
38
+ findCandidates(memories: Memory[], category: MemoryCategory, projectPath?: string, limit?: number): Memory[];
39
+ }
40
+ //# sourceMappingURL=dedup-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dedup-manager.d.ts","sourceRoot":"","sources":["../../src/extraction/dedup-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEhE,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE/D,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,WAAW,CAAC;IACpB,6BAA6B;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB;AAyCD,qBAAa,YAAY;IACvB;;;;;;OAMG;IACH,MAAM,CACJ,UAAU,EAAE,MAAM,EAClB,gBAAgB,EAAE,MAAM,EAAE,EAC1B,YAAY,CAAC,EAAE,MAAM,EAAE,GACtB,aAAa;IAkEhB;;;OAGG;IACH,YAAY,CAAC,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM;IAuBjE;;OAEG;IACH,cAAc,CACZ,QAAQ,EAAE,MAAM,EAAE,EAClB,QAAQ,EAAE,cAAc,EACxB,WAAW,CAAC,EAAE,MAAM,EACpB,KAAK,GAAE,MAAW,GACjB,MAAM,EAAE;CAUZ"}
@@ -0,0 +1,148 @@
1
+ /**
2
+ * Mem0-style 4-Way Memory Deduplication Manager
3
+ *
4
+ * 새 메모리 생성 전 기존 메모리와 비교하여 최적의 동작 결정:
5
+ * - ADD: 유사 메모리 없음 → 새로 생성
6
+ * - UPDATE: 유사도 > 0.8 → 기존 메모리 내용 병합/갱신
7
+ * - DELETE: 새 정보가 기존을 무효화 → 기존 삭제 후 새로 생성
8
+ * - NOOP: 유사도 > 0.95 → 완전 중복, 무시
9
+ */
10
+ import { cosineSimilarity } from './similarity.js';
11
+ /** 유사도 임계값 */
12
+ const NOOP_THRESHOLD = 0.95; // 거의 동일
13
+ const UPDATE_THRESHOLD = 0.8; // 유사하지만 보충 가능
14
+ const DELETE_THRESHOLD = 0.85; // 무효화 패턴 감지 시
15
+ /** 무효화 키워드 (기존 메모리를 대체하는 신호) */
16
+ const INVALIDATION_KEYWORDS = [
17
+ 'deprecated', 'obsolete', 'no longer', 'replaced by', 'migrated to',
18
+ 'removed', 'deleted', 'fixed', 'resolved', 'workaround no longer needed',
19
+ '더 이상', '대체됨', '삭제됨', '수정됨', '해결됨', '폐기',
20
+ ];
21
+ /**
22
+ * 새 콘텐츠가 기존 콘텐츠를 무효화하는지 판단
23
+ */
24
+ function detectInvalidation(newContent, _existingContent) {
25
+ const lowerNew = newContent.toLowerCase();
26
+ return INVALIDATION_KEYWORDS.some(kw => lowerNew.includes(kw));
27
+ }
28
+ /**
29
+ * 두 텍스트의 유사도를 계산 (임베딩 없이 텍스트 기반)
30
+ * Jaccard 유사도 + 문자열 포함 관계
31
+ */
32
+ function textSimilarity(a, b) {
33
+ const wordsA = new Set(a.toLowerCase().split(/\s+/).filter(w => w.length > 2));
34
+ const wordsB = new Set(b.toLowerCase().split(/\s+/).filter(w => w.length > 2));
35
+ if (wordsA.size === 0 || wordsB.size === 0)
36
+ return 0;
37
+ let intersection = 0;
38
+ for (const w of wordsA) {
39
+ if (wordsB.has(w))
40
+ intersection++;
41
+ }
42
+ const union = new Set([...wordsA, ...wordsB]).size;
43
+ return union > 0 ? intersection / union : 0;
44
+ }
45
+ export class DedupManager {
46
+ /**
47
+ * 4-Way 판단: 새 콘텐츠를 기존 메모리와 비교
48
+ *
49
+ * @param newContent 새로 저장할 콘텐츠
50
+ * @param existingMemories 비교 대상 기존 메모리 (동일 프로젝트+카테고리)
51
+ * @param newEmbedding 새 콘텐츠의 임베딩 (있으면 코사인 유사도 사용)
52
+ */
53
+ decide(newContent, existingMemories, newEmbedding) {
54
+ if (existingMemories.length === 0) {
55
+ return { action: 'ADD', similarity: 0, reason: 'No existing memories to compare' };
56
+ }
57
+ let bestSimilarity = 0;
58
+ let bestMatch;
59
+ for (const mem of existingMemories) {
60
+ let sim;
61
+ // 임베딩이 둘 다 있으면 코사인 유사도, 아니면 텍스트 유사도
62
+ if (newEmbedding && mem.embedding && mem.embedding.length > 0 &&
63
+ newEmbedding.length === mem.embedding.length) {
64
+ sim = cosineSimilarity(newEmbedding, mem.embedding);
65
+ }
66
+ else {
67
+ sim = textSimilarity(newContent, mem.content);
68
+ }
69
+ if (sim > bestSimilarity) {
70
+ bestSimilarity = sim;
71
+ bestMatch = mem;
72
+ }
73
+ }
74
+ // NOOP: 완전 중복
75
+ if (bestSimilarity >= NOOP_THRESHOLD && bestMatch) {
76
+ return {
77
+ action: 'NOOP',
78
+ targetMemory: bestMatch,
79
+ similarity: bestSimilarity,
80
+ reason: `Near-duplicate (similarity: ${bestSimilarity.toFixed(3)})`,
81
+ };
82
+ }
83
+ // DELETE + ADD: 무효화 패턴 감지
84
+ if (bestSimilarity >= DELETE_THRESHOLD && bestMatch &&
85
+ detectInvalidation(newContent, bestMatch.content)) {
86
+ return {
87
+ action: 'DELETE',
88
+ targetMemory: bestMatch,
89
+ similarity: bestSimilarity,
90
+ reason: `Invalidation detected (similarity: ${bestSimilarity.toFixed(3)})`,
91
+ };
92
+ }
93
+ // UPDATE: 유사하지만 보충 가능
94
+ if (bestSimilarity >= UPDATE_THRESHOLD && bestMatch) {
95
+ return {
96
+ action: 'UPDATE',
97
+ targetMemory: bestMatch,
98
+ similarity: bestSimilarity,
99
+ reason: `Similar content found, merging (similarity: ${bestSimilarity.toFixed(3)})`,
100
+ };
101
+ }
102
+ // ADD: 유사한 메모리 없음
103
+ return {
104
+ action: 'ADD',
105
+ similarity: bestSimilarity,
106
+ reason: bestSimilarity > 0
107
+ ? `Best match similarity (${bestSimilarity.toFixed(3)}) below threshold`
108
+ : 'No similar memories found',
109
+ };
110
+ }
111
+ /**
112
+ * 두 메모리 콘텐츠를 병합 (UPDATE용)
113
+ * 기존 콘텐츠 + 새 정보 추가
114
+ */
115
+ mergeContent(existingContent, newContent) {
116
+ // 기존 콘텐츠에 새 내용이 이미 포함되어 있으면 그대로 반환
117
+ if (existingContent.includes(newContent.trim())) {
118
+ return existingContent;
119
+ }
120
+ // 새 내용에서 기존과 중복되지 않는 부분만 추출
121
+ const existingLines = new Set(existingContent.split('\n').map(l => l.trim()).filter(l => l.length > 0));
122
+ const newLines = newContent.split('\n')
123
+ .map(l => l.trim())
124
+ .filter(l => l.length > 0 && !existingLines.has(l));
125
+ if (newLines.length === 0) {
126
+ return existingContent;
127
+ }
128
+ // 기존 + 새 줄 결합 (최대 2000자)
129
+ const merged = existingContent + '\n[Updated] ' + newLines.join('\n');
130
+ return merged.slice(0, 2000);
131
+ }
132
+ /**
133
+ * 기존 메모리에서 유사한 것들을 찾아 비교 대상 목록 구성
134
+ */
135
+ findCandidates(memories, category, projectPath, limit = 50) {
136
+ return memories
137
+ .filter(m => {
138
+ if (m.category !== category)
139
+ return false;
140
+ if (projectPath && m.projectPath !== projectPath)
141
+ return false;
142
+ return true;
143
+ })
144
+ .sort((a, b) => new Date(b.updatedAt).getTime() - new Date(a.updatedAt).getTime())
145
+ .slice(0, limit);
146
+ }
147
+ }
148
+ //# sourceMappingURL=dedup-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dedup-manager.js","sourceRoot":"","sources":["../../src/extraction/dedup-manager.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"extractor.d.ts","sourceRoot":"","sources":["../../src/extraction/extractor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,cAAc,EAId,gBAAgB,EAEjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AA6ClD;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,cAAc,EAAE,EAC1B,WAAW,EAAE,MAAM,GAClB,gBAAgB,CAoElB;AAidD;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,cAAc,EAAE,EAC1B,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,SAAS,GACpB,OAAO,CAAC,gBAAgB,CAAC,CAwB3B;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,cAAc,EAAE,EAC1B,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,MAAM,CAAC,CAgBjB"}
1
+ {"version":3,"file":"extractor.d.ts","sourceRoot":"","sources":["../../src/extraction/extractor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,cAAc,EAId,gBAAgB,EAEjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AA6ClD;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,cAAc,EAAE,EAC1B,WAAW,EAAE,MAAM,GAClB,gBAAgB,CAoElB;AAieD;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,cAAc,EAAE,EAC1B,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,SAAS,GACpB,OAAO,CAAC,gBAAgB,CAAC,CAwB3B;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,cAAc,EAAE,EAC1B,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,MAAM,CAAC,CAgBjB"}