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.
- package/README.md +262 -45
- package/dist/adapters/anthropic.d.ts +69 -0
- package/dist/adapters/anthropic.d.ts.map +1 -0
- package/dist/adapters/anthropic.js +116 -0
- package/dist/adapters/anthropic.js.map +1 -0
- package/dist/claude/sync.d.ts +57 -0
- package/dist/claude/sync.d.ts.map +1 -0
- package/dist/claude/sync.js +201 -0
- package/dist/claude/sync.js.map +1 -0
- package/dist/cli/commands/claude-sync.d.ts +11 -0
- package/dist/cli/commands/claude-sync.d.ts.map +1 -0
- package/dist/cli/commands/claude-sync.js +69 -0
- package/dist/cli/commands/claude-sync.js.map +1 -0
- package/dist/cli/commands/health.d.ts +8 -0
- package/dist/cli/commands/health.d.ts.map +1 -0
- package/dist/cli/commands/health.js +108 -0
- package/dist/cli/commands/health.js.map +1 -0
- package/dist/cli/commands/sync.d.ts.map +1 -1
- package/dist/cli/commands/sync.js +52 -0
- package/dist/cli/commands/sync.js.map +1 -1
- package/dist/cli/index.js +27 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/config/manager.d.ts +9 -0
- package/dist/config/manager.d.ts.map +1 -1
- package/dist/config/manager.js +74 -0
- package/dist/config/manager.js.map +1 -1
- package/dist/db/database.d.ts +4 -2
- package/dist/db/database.d.ts.map +1 -1
- package/dist/db/database.js +116 -17
- package/dist/db/database.js.map +1 -1
- package/dist/embedding/index.d.ts +1 -0
- package/dist/embedding/index.d.ts.map +1 -1
- package/dist/embedding/index.js +1 -0
- package/dist/embedding/index.js.map +1 -1
- package/dist/embedding/quantization.d.ts +34 -0
- package/dist/embedding/quantization.d.ts.map +1 -0
- package/dist/embedding/quantization.js +89 -0
- package/dist/embedding/quantization.js.map +1 -0
- package/dist/extraction/filter.d.ts.map +1 -1
- package/dist/extraction/filter.js +25 -3
- package/dist/extraction/filter.js.map +1 -1
- package/dist/hooks/post-tool-use.d.ts.map +1 -1
- package/dist/hooks/post-tool-use.js +64 -49
- package/dist/hooks/post-tool-use.js.map +1 -1
- package/dist/hooks/session-end.d.ts.map +1 -1
- package/dist/hooks/session-end.js +45 -28
- package/dist/hooks/session-end.js.map +1 -1
- package/dist/hooks/session-start.d.ts.map +1 -1
- package/dist/hooks/session-start.js +21 -3
- package/dist/hooks/session-start.js.map +1 -1
- package/dist/i18n/index.d.ts +3 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +2 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/i18n/messages.d.ts +82 -0
- package/dist/i18n/messages.d.ts.map +1 -0
- package/dist/i18n/messages.js +150 -0
- package/dist/i18n/messages.js.map +1 -0
- package/dist/index.d.ts +18 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -3
- package/dist/index.js.map +1 -1
- package/dist/lifecycle/index.d.ts +3 -0
- package/dist/lifecycle/index.d.ts.map +1 -1
- package/dist/lifecycle/index.js +2 -0
- package/dist/lifecycle/index.js.map +1 -1
- package/dist/lifecycle/tiering.d.ts +50 -0
- package/dist/lifecycle/tiering.d.ts.map +1 -0
- package/dist/lifecycle/tiering.js +235 -0
- package/dist/lifecycle/tiering.js.map +1 -0
- package/dist/sync/client.d.ts +20 -2
- package/dist/sync/client.d.ts.map +1 -1
- package/dist/sync/client.js +82 -10
- package/dist/sync/client.js.map +1 -1
- package/dist/sync/encryption.d.ts +72 -0
- package/dist/sync/encryption.d.ts.map +1 -0
- package/dist/sync/encryption.js +203 -0
- package/dist/sync/encryption.js.map +1 -0
- package/dist/sync/index.d.ts +4 -0
- package/dist/sync/index.d.ts.map +1 -1
- package/dist/sync/index.js +3 -0
- package/dist/sync/index.js.map +1 -1
- package/dist/sync/scheduler.d.ts +69 -0
- package/dist/sync/scheduler.d.ts.map +1 -0
- package/dist/sync/scheduler.js +140 -0
- package/dist/sync/scheduler.js.map +1 -0
- package/dist/types/index.d.ts +32 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +34 -4
- package/dist/types/index.js.map +1 -1
- package/dist/utils/keychain.d.ts +50 -0
- package/dist/utils/keychain.d.ts.map +1 -0
- package/dist/utils/keychain.js +166 -0
- package/dist/utils/keychain.js.map +1 -0
- package/dist/utils/logger.d.ts +16 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +118 -0
- package/dist/utils/logger.js.map +1 -0
- package/package.json +1 -1
package/dist/config/manager.js
CHANGED
|
@@ -9,6 +9,7 @@ import { homedir } from 'node:os';
|
|
|
9
9
|
import { randomUUID } from 'node:crypto';
|
|
10
10
|
import { z } from 'zod';
|
|
11
11
|
import { DEFAULT_CONFIG } from '../types/index.js';
|
|
12
|
+
import { getKeychainStore } from '../utils/keychain.js';
|
|
12
13
|
const DEFAULT_CONFIG_DIR = join(homedir(), '.a2a');
|
|
13
14
|
const DEFAULT_CONFIG_PATH = join(DEFAULT_CONFIG_DIR, 'config.json');
|
|
14
15
|
const ConfigSchema = z.object({
|
|
@@ -47,6 +48,13 @@ const ConfigSchema = z.object({
|
|
|
47
48
|
maxMemories: z.number().int().positive(),
|
|
48
49
|
cleanupOnSessionEnd: z.boolean(),
|
|
49
50
|
qualityThreshold: z.number().min(0).max(1),
|
|
51
|
+
tiering: z.object({
|
|
52
|
+
enabled: z.boolean(),
|
|
53
|
+
hotThresholdDays: z.number().int().positive(),
|
|
54
|
+
warmThresholdDays: z.number().int().positive(),
|
|
55
|
+
coldCompressionEnabled: z.boolean(),
|
|
56
|
+
autoPromote: z.boolean(),
|
|
57
|
+
}).optional(),
|
|
50
58
|
}).optional().default({
|
|
51
59
|
ttlDays: 90,
|
|
52
60
|
maxMemories: 1000,
|
|
@@ -77,12 +85,32 @@ const ConfigSchema = z.object({
|
|
|
77
85
|
pushOnSessionEnd: z.boolean(),
|
|
78
86
|
pullOnSessionStart: z.boolean(),
|
|
79
87
|
timeoutMs: z.number().int().positive(),
|
|
88
|
+
intervalMs: z.number().int().nonnegative().default(1800000),
|
|
89
|
+
encryption: z.object({
|
|
90
|
+
enabled: z.boolean(),
|
|
91
|
+
algorithm: z.literal('aes-256-gcm'),
|
|
92
|
+
}).optional(),
|
|
80
93
|
}).optional().default({
|
|
81
94
|
enabled: false,
|
|
82
95
|
pushOnSessionEnd: true,
|
|
83
96
|
pullOnSessionStart: true,
|
|
84
97
|
timeoutMs: 5000,
|
|
98
|
+
intervalMs: 1800000,
|
|
85
99
|
}),
|
|
100
|
+
logging: z.object({
|
|
101
|
+
enabled: z.boolean(),
|
|
102
|
+
level: z.enum(['debug', 'info', 'warn', 'error']),
|
|
103
|
+
outputDir: z.string(),
|
|
104
|
+
maxFileSizeMB: z.number().positive(),
|
|
105
|
+
maxFiles: z.number().int().positive(),
|
|
106
|
+
}).optional().default({
|
|
107
|
+
enabled: false,
|
|
108
|
+
level: 'info',
|
|
109
|
+
outputDir: '~/.a2a/logs',
|
|
110
|
+
maxFileSizeMB: 10,
|
|
111
|
+
maxFiles: 3,
|
|
112
|
+
}),
|
|
113
|
+
locale: z.enum(['en', 'ko']).optional(),
|
|
86
114
|
}).refine((data) => data.mode !== 'team' || data.team !== undefined, { message: "Team configuration is required when mode is 'team'" });
|
|
87
115
|
/**
|
|
88
116
|
* 고유 노드 ID 생성 (UUID)
|
|
@@ -122,6 +150,19 @@ export class ConfigManager {
|
|
|
122
150
|
const parsed = JSON.parse(raw);
|
|
123
151
|
const validated = ConfigSchema.parse(parsed);
|
|
124
152
|
this.config = validated;
|
|
153
|
+
// 키체인에서 API 키 로드 (config에 없을 때)
|
|
154
|
+
if (!this.config.server.apiKey) {
|
|
155
|
+
try {
|
|
156
|
+
const keychain = getKeychainStore();
|
|
157
|
+
const stored = keychain.get('server.apiKey');
|
|
158
|
+
if (stored) {
|
|
159
|
+
this.config.server.apiKey = stored;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
catch {
|
|
163
|
+
// 키체인 접근 실패 무시
|
|
164
|
+
}
|
|
165
|
+
}
|
|
125
166
|
return this.config;
|
|
126
167
|
}
|
|
127
168
|
catch (err) {
|
|
@@ -153,6 +194,39 @@ export class ConfigManager {
|
|
|
153
194
|
config[key] = value;
|
|
154
195
|
this.save(config);
|
|
155
196
|
}
|
|
197
|
+
/**
|
|
198
|
+
* API 키 설정 (키체인 우선, 실패 시 config.json)
|
|
199
|
+
* @returns 'keychain' | 'config' — 저장 위치
|
|
200
|
+
*/
|
|
201
|
+
setApiKey(apiKey) {
|
|
202
|
+
const keychain = getKeychainStore();
|
|
203
|
+
if (keychain.isAvailable() && keychain.set('server.apiKey', apiKey)) {
|
|
204
|
+
// 키체인에 저장 성공 → config.json에서 제거
|
|
205
|
+
const config = this.load();
|
|
206
|
+
delete config.server.apiKey;
|
|
207
|
+
this.save(config);
|
|
208
|
+
// 메모리 캐시에는 유지
|
|
209
|
+
if (this.config) {
|
|
210
|
+
this.config.server.apiKey = apiKey;
|
|
211
|
+
}
|
|
212
|
+
return 'keychain';
|
|
213
|
+
}
|
|
214
|
+
// 키체인 미지원 → config.json에 저장
|
|
215
|
+
const config = this.load();
|
|
216
|
+
config.server.apiKey = apiKey;
|
|
217
|
+
this.save(config);
|
|
218
|
+
return 'config';
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* API 키 삭제 (키체인 + config.json 모두)
|
|
222
|
+
*/
|
|
223
|
+
deleteApiKey() {
|
|
224
|
+
const keychain = getKeychainStore();
|
|
225
|
+
keychain.delete('server.apiKey');
|
|
226
|
+
const config = this.load();
|
|
227
|
+
delete config.server.apiKey;
|
|
228
|
+
this.save(config);
|
|
229
|
+
}
|
|
156
230
|
reset() {
|
|
157
231
|
this.config = { ...DEFAULT_CONFIG };
|
|
158
232
|
this.save(this.config);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/config/manager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACvF,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAkB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/config/manager.ts"],"names":[],"mappings":"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"}
|
package/dist/db/database.d.ts
CHANGED
|
@@ -4,12 +4,13 @@
|
|
|
4
4
|
* SQLite 기반 로컬 메모리 저장소.
|
|
5
5
|
* better-sqlite3 (동기 API) 사용.
|
|
6
6
|
*/
|
|
7
|
-
import type { Memory, MemoryCreateInput, MemorySearchOptions, MemorySearchResult, MemoryCategory, MemoryTier } from '../types/index.js';
|
|
7
|
+
import type { Memory, MemoryCreateInput, MemorySearchOptions, MemorySearchResult, MemoryCategory, MemoryTier, QuantizationLevel } from '../types/index.js';
|
|
8
8
|
export declare class MemoryDatabase {
|
|
9
9
|
private db;
|
|
10
10
|
private dbPath;
|
|
11
11
|
private stmts;
|
|
12
|
-
|
|
12
|
+
private quantizationLevel;
|
|
13
|
+
constructor(dbPath?: string, quantizationLevel?: QuantizationLevel);
|
|
13
14
|
private stmt;
|
|
14
15
|
initialize(): void;
|
|
15
16
|
createMemory(input: MemoryCreateInput): Memory;
|
|
@@ -59,6 +60,7 @@ export declare class MemoryDatabase {
|
|
|
59
60
|
clockState: Record<string, number>;
|
|
60
61
|
}>;
|
|
61
62
|
saveEmbedding(memoryId: string, embedding: number[]): void;
|
|
63
|
+
getEmbedding(memoryId: string): number[] | null;
|
|
62
64
|
getMemoriesOlderThan(days: number): Memory[];
|
|
63
65
|
getMemoriesWithoutEmbedding(limit?: number): Memory[];
|
|
64
66
|
deleteMemories(ids: string[]): number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/db/database.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,KAAK,EACV,MAAM,EACN,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,UAAU,
|
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/db/database.ts"],"names":[],"mappings":"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"}
|
package/dist/db/database.js
CHANGED
|
@@ -10,6 +10,7 @@ import { existsSync, mkdirSync, statSync } from 'node:fs';
|
|
|
10
10
|
import { dirname } from 'node:path';
|
|
11
11
|
import { homedir } from 'node:os';
|
|
12
12
|
import { cosineSimilarity as computeCosineSimilarity } from '../extraction/similarity.js';
|
|
13
|
+
import { quantizeToFloat32, dequantizeFromFloat32, quantizeToInt8, dequantizeFromInt8, } from '../embedding/quantization.js';
|
|
13
14
|
const DEFAULT_DB_PATH = '~/.a2a/memory.db';
|
|
14
15
|
function resolvePath(p) {
|
|
15
16
|
if (p.startsWith('~')) {
|
|
@@ -21,8 +22,10 @@ export class MemoryDatabase {
|
|
|
21
22
|
db;
|
|
22
23
|
dbPath;
|
|
23
24
|
stmts = new Map();
|
|
24
|
-
|
|
25
|
+
quantizationLevel;
|
|
26
|
+
constructor(dbPath = DEFAULT_DB_PATH, quantizationLevel = 'none') {
|
|
25
27
|
this.dbPath = resolvePath(dbPath);
|
|
28
|
+
this.quantizationLevel = quantizationLevel;
|
|
26
29
|
const dir = dirname(this.dbPath);
|
|
27
30
|
if (!existsSync(dir)) {
|
|
28
31
|
mkdirSync(dir, { recursive: true });
|
|
@@ -95,6 +98,13 @@ export class MemoryDatabase {
|
|
|
95
98
|
clock_state TEXT NOT NULL,
|
|
96
99
|
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
97
100
|
);
|
|
101
|
+
|
|
102
|
+
CREATE TABLE IF NOT EXISTS embedding_metadata (
|
|
103
|
+
memory_id TEXT PRIMARY KEY,
|
|
104
|
+
quantization_level TEXT NOT NULL,
|
|
105
|
+
quantization_stats TEXT,
|
|
106
|
+
FOREIGN KEY (memory_id) REFERENCES memories(id) ON DELETE CASCADE
|
|
107
|
+
);
|
|
98
108
|
`);
|
|
99
109
|
// FTS5 테이블 (별도 exec — 이미 존재하면 무시)
|
|
100
110
|
try {
|
|
@@ -422,8 +432,51 @@ export class MemoryDatabase {
|
|
|
422
432
|
}));
|
|
423
433
|
}
|
|
424
434
|
saveEmbedding(memoryId, embedding) {
|
|
425
|
-
|
|
435
|
+
let buffer;
|
|
436
|
+
let stats = null;
|
|
437
|
+
// Quantization level에 따라 압축
|
|
438
|
+
if (this.quantizationLevel === 'float32') {
|
|
439
|
+
buffer = quantizeToFloat32(embedding);
|
|
440
|
+
}
|
|
441
|
+
else if (this.quantizationLevel === 'int8') {
|
|
442
|
+
const result = quantizeToInt8(embedding);
|
|
443
|
+
buffer = result.buffer;
|
|
444
|
+
stats = result.stats;
|
|
445
|
+
}
|
|
446
|
+
else {
|
|
447
|
+
// 'none': 기존 방식 (float32로 저장)
|
|
448
|
+
buffer = float32ArrayToBuffer(new Float32Array(embedding));
|
|
449
|
+
}
|
|
450
|
+
// 임베딩 저장
|
|
426
451
|
this.stmt('save_embedding', 'UPDATE memories SET embedding = ? WHERE id = ?').run(buffer, memoryId);
|
|
452
|
+
// 메타데이터 저장 (quantization level과 stats)
|
|
453
|
+
this.stmt('save_embedding_meta', `
|
|
454
|
+
INSERT OR REPLACE INTO embedding_metadata (memory_id, quantization_level, quantization_stats)
|
|
455
|
+
VALUES (?, ?, ?)
|
|
456
|
+
`).run(memoryId, this.quantizationLevel, stats ? JSON.stringify(stats) : null);
|
|
457
|
+
}
|
|
458
|
+
getEmbedding(memoryId) {
|
|
459
|
+
const row = this.stmt('get_memory', 'SELECT embedding FROM memories WHERE id = ?').get(memoryId);
|
|
460
|
+
if (!row?.embedding)
|
|
461
|
+
return null;
|
|
462
|
+
// 메타데이터 조회
|
|
463
|
+
const metaRow = this.stmt('get_embedding_meta', 'SELECT quantization_level, quantization_stats FROM embedding_metadata WHERE memory_id = ?').get(memoryId);
|
|
464
|
+
const level = (metaRow?.quantization_level ?? 'none');
|
|
465
|
+
// Level에 따라 역양자화
|
|
466
|
+
if (level === 'float32') {
|
|
467
|
+
return dequantizeFromFloat32(row.embedding);
|
|
468
|
+
}
|
|
469
|
+
else if (level === 'int8') {
|
|
470
|
+
if (!metaRow?.quantization_stats) {
|
|
471
|
+
throw new Error(`Int8 embedding missing stats for memory ${memoryId}`);
|
|
472
|
+
}
|
|
473
|
+
const stats = JSON.parse(metaRow.quantization_stats);
|
|
474
|
+
return dequantizeFromInt8(row.embedding, stats);
|
|
475
|
+
}
|
|
476
|
+
else {
|
|
477
|
+
// 'none' 또는 메타데이터 없음 (레거시 데이터): float32Array로 읽기
|
|
478
|
+
return Array.from(bufferToFloat32Array(row.embedding));
|
|
479
|
+
}
|
|
427
480
|
}
|
|
428
481
|
// ============================
|
|
429
482
|
// Lifecycle
|
|
@@ -489,13 +542,24 @@ export class MemoryDatabase {
|
|
|
489
542
|
}
|
|
490
543
|
rowToMemory(row) {
|
|
491
544
|
const tags = this.stmt('get_tags', 'SELECT tag FROM memory_tags WHERE memory_id = ?').all(row.id);
|
|
545
|
+
// Embedding 복원 (quantization 고려)
|
|
546
|
+
let embedding = undefined;
|
|
547
|
+
if (row.embedding) {
|
|
548
|
+
try {
|
|
549
|
+
embedding = this.getEmbedding(row.id) ?? undefined;
|
|
550
|
+
}
|
|
551
|
+
catch {
|
|
552
|
+
// 메타데이터 없는 레거시 데이터는 float32Array로 읽기
|
|
553
|
+
embedding = Array.from(bufferToFloat32Array(row.embedding));
|
|
554
|
+
}
|
|
555
|
+
}
|
|
492
556
|
return {
|
|
493
557
|
id: row.id,
|
|
494
558
|
content: row.content,
|
|
495
559
|
category: row.category,
|
|
496
560
|
tier: row.tier,
|
|
497
561
|
tags: tags.map((t) => t.tag),
|
|
498
|
-
embedding
|
|
562
|
+
embedding,
|
|
499
563
|
projectPath: row.project_path ?? undefined,
|
|
500
564
|
sessionId: row.session_id ?? undefined,
|
|
501
565
|
createdAt: row.created_at,
|
|
@@ -516,20 +580,55 @@ export class MemoryDatabase {
|
|
|
516
580
|
arr.push(tr.tag);
|
|
517
581
|
tagMap.set(tr.memory_id, arr);
|
|
518
582
|
}
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
583
|
+
// Embedding metadata 조회 (배치)
|
|
584
|
+
const metaRows = this.db.prepare(`SELECT memory_id, quantization_level, quantization_stats FROM embedding_metadata WHERE memory_id IN (${placeholders})`).all(...ids);
|
|
585
|
+
const metaMap = new Map();
|
|
586
|
+
for (const mr of metaRows) {
|
|
587
|
+
metaMap.set(mr.memory_id, {
|
|
588
|
+
level: mr.quantization_level,
|
|
589
|
+
stats: mr.quantization_stats ? JSON.parse(mr.quantization_stats) : null,
|
|
590
|
+
});
|
|
591
|
+
}
|
|
592
|
+
return rows.map(row => {
|
|
593
|
+
let embedding = undefined;
|
|
594
|
+
if (row.embedding) {
|
|
595
|
+
const meta = metaMap.get(row.id);
|
|
596
|
+
const level = meta?.level ?? 'none';
|
|
597
|
+
try {
|
|
598
|
+
if (level === 'float32') {
|
|
599
|
+
embedding = dequantizeFromFloat32(row.embedding);
|
|
600
|
+
}
|
|
601
|
+
else if (level === 'int8') {
|
|
602
|
+
if (!meta?.stats) {
|
|
603
|
+
throw new Error('Int8 stats missing');
|
|
604
|
+
}
|
|
605
|
+
embedding = dequantizeFromInt8(row.embedding, meta.stats);
|
|
606
|
+
}
|
|
607
|
+
else {
|
|
608
|
+
// 'none' 또는 메타데이터 없음
|
|
609
|
+
embedding = Array.from(bufferToFloat32Array(row.embedding));
|
|
610
|
+
}
|
|
611
|
+
}
|
|
612
|
+
catch {
|
|
613
|
+
// 에러 시 레거시 방식으로 폴백
|
|
614
|
+
embedding = Array.from(bufferToFloat32Array(row.embedding));
|
|
615
|
+
}
|
|
616
|
+
}
|
|
617
|
+
return {
|
|
618
|
+
id: row.id,
|
|
619
|
+
content: row.content,
|
|
620
|
+
category: row.category,
|
|
621
|
+
tier: row.tier,
|
|
622
|
+
tags: tagMap.get(row.id) ?? [],
|
|
623
|
+
embedding,
|
|
624
|
+
projectPath: row.project_path ?? undefined,
|
|
625
|
+
sessionId: row.session_id ?? undefined,
|
|
626
|
+
createdAt: row.created_at,
|
|
627
|
+
updatedAt: row.updated_at,
|
|
628
|
+
accessCount: row.access_count,
|
|
629
|
+
lastAccessedAt: row.last_accessed_at ?? undefined,
|
|
630
|
+
};
|
|
631
|
+
});
|
|
533
632
|
}
|
|
534
633
|
}
|
|
535
634
|
function bufferToFloat32Array(buf) {
|
package/dist/db/database.js.map
CHANGED
|
@@ -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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"}
|
|
@@ -17,4 +17,5 @@ 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 { quantizeToFloat32, dequantizeFromFloat32, quantizeToInt8, dequantizeFromInt8, type QuantizationLevel, type QuantizationStats, } from './quantization.js';
|
|
20
21
|
//# 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"}
|
|
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"}
|
package/dist/embedding/index.js
CHANGED
|
@@ -25,4 +25,5 @@ export function createEmbeddingProvider(config, llmConfig) {
|
|
|
25
25
|
}
|
|
26
26
|
export { LocalEmbeddingProvider } from './local-provider.js';
|
|
27
27
|
export { OpenAIEmbeddingProvider } from './openai-provider.js';
|
|
28
|
+
export { quantizeToFloat32, dequantizeFromFloat32, quantizeToInt8, dequantizeFromInt8, } from './quantization.js';
|
|
28
29
|
//# 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"}
|
|
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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vector Quantization Module
|
|
3
|
+
*
|
|
4
|
+
* Scalar Quantization으로 임베딩 저장 공간 절감.
|
|
5
|
+
* - Float32: 50% 절감 (float64 → float32)
|
|
6
|
+
* - Int8: 87.5% 절감 (float64 → int8)
|
|
7
|
+
*/
|
|
8
|
+
export type QuantizationLevel = 'none' | 'float32' | 'int8';
|
|
9
|
+
export interface QuantizationStats {
|
|
10
|
+
min: number;
|
|
11
|
+
max: number;
|
|
12
|
+
dimensions: number;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Float32 양자화 (float64 → float32, 50% 저장 공간 절감)
|
|
16
|
+
*/
|
|
17
|
+
export declare function quantizeToFloat32(embedding: number[]): Buffer;
|
|
18
|
+
/**
|
|
19
|
+
* Float32 역양자화 (buffer → number[])
|
|
20
|
+
*/
|
|
21
|
+
export declare function dequantizeFromFloat32(buffer: Buffer): number[];
|
|
22
|
+
/**
|
|
23
|
+
* Int8 양자화 (float64 → int8, 87.5% 저장 공간 절감)
|
|
24
|
+
* Min-Max Scaling: value → round((value - min) / (max - min) * 255) - 128
|
|
25
|
+
*/
|
|
26
|
+
export declare function quantizeToInt8(embedding: number[], stats?: QuantizationStats): {
|
|
27
|
+
buffer: Buffer;
|
|
28
|
+
stats: QuantizationStats;
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Int8 역양자화 (buffer + stats → number[])
|
|
32
|
+
*/
|
|
33
|
+
export declare function dequantizeFromInt8(buffer: Buffer, stats: QuantizationStats): number[];
|
|
34
|
+
//# sourceMappingURL=quantization.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quantization.d.ts","sourceRoot":"","sources":["../../src/embedding/quantization.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;AAE5D,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,CAG7D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAI9D;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,SAAS,EAAE,MAAM,EAAE,EACnB,KAAK,CAAC,EAAE,iBAAiB,GACxB;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,iBAAiB,CAAA;CAAE,CAwC9C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,GAAG,MAAM,EAAE,CAsBrF"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vector Quantization Module
|
|
3
|
+
*
|
|
4
|
+
* Scalar Quantization으로 임베딩 저장 공간 절감.
|
|
5
|
+
* - Float32: 50% 절감 (float64 → float32)
|
|
6
|
+
* - Int8: 87.5% 절감 (float64 → int8)
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Float32 양자화 (float64 → float32, 50% 저장 공간 절감)
|
|
10
|
+
*/
|
|
11
|
+
export function quantizeToFloat32(embedding) {
|
|
12
|
+
const float32Array = new Float32Array(embedding);
|
|
13
|
+
return Buffer.from(float32Array.buffer, float32Array.byteOffset, float32Array.byteLength);
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Float32 역양자화 (buffer → number[])
|
|
17
|
+
*/
|
|
18
|
+
export function dequantizeFromFloat32(buffer) {
|
|
19
|
+
const arrayBuffer = buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength);
|
|
20
|
+
const float32Array = new Float32Array(arrayBuffer);
|
|
21
|
+
return Array.from(float32Array);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Int8 양자화 (float64 → int8, 87.5% 저장 공간 절감)
|
|
25
|
+
* Min-Max Scaling: value → round((value - min) / (max - min) * 255) - 128
|
|
26
|
+
*/
|
|
27
|
+
export function quantizeToInt8(embedding, stats) {
|
|
28
|
+
if (embedding.length === 0) {
|
|
29
|
+
return {
|
|
30
|
+
buffer: Buffer.alloc(0),
|
|
31
|
+
stats: { min: 0, max: 0, dimensions: 0 },
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
// Stats 계산 (제공되지 않은 경우)
|
|
35
|
+
let min, max;
|
|
36
|
+
if (stats) {
|
|
37
|
+
min = stats.min;
|
|
38
|
+
max = stats.max;
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
min = Math.min(...embedding);
|
|
42
|
+
max = Math.max(...embedding);
|
|
43
|
+
}
|
|
44
|
+
const range = max - min;
|
|
45
|
+
const int8Array = new Int8Array(embedding.length);
|
|
46
|
+
// 모든 값이 같은 경우 (range = 0)
|
|
47
|
+
if (range === 0) {
|
|
48
|
+
int8Array.fill(0);
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
for (let i = 0; i < embedding.length; i++) {
|
|
52
|
+
const normalized = (embedding[i] - min) / range; // 0~1 범위로 정규화
|
|
53
|
+
const scaled = Math.round(normalized * 255) - 128; // -128~127 범위로 변환
|
|
54
|
+
int8Array[i] = Math.max(-128, Math.min(127, scaled)); // clamp
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return {
|
|
58
|
+
buffer: Buffer.from(int8Array.buffer, int8Array.byteOffset, int8Array.byteLength),
|
|
59
|
+
stats: {
|
|
60
|
+
min,
|
|
61
|
+
max,
|
|
62
|
+
dimensions: embedding.length,
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Int8 역양자화 (buffer + stats → number[])
|
|
68
|
+
*/
|
|
69
|
+
export function dequantizeFromInt8(buffer, stats) {
|
|
70
|
+
if (buffer.length === 0 || stats.dimensions === 0) {
|
|
71
|
+
return [];
|
|
72
|
+
}
|
|
73
|
+
const arrayBuffer = buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength);
|
|
74
|
+
const int8Array = new Int8Array(arrayBuffer);
|
|
75
|
+
const range = stats.max - stats.min;
|
|
76
|
+
const result = new Array(stats.dimensions);
|
|
77
|
+
// 모든 값이 같았던 경우 (range = 0)
|
|
78
|
+
if (range === 0) {
|
|
79
|
+
result.fill(stats.min);
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
for (let i = 0; i < stats.dimensions; i++) {
|
|
83
|
+
const scaled = (int8Array[i] + 128) / 255; // 0~1 범위로 복원
|
|
84
|
+
result[i] = scaled * range + stats.min; // 원래 범위로 복원
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return result;
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=quantization.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quantization.js","sourceRoot":"","sources":["../../src/embedding/quantization.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../src/extraction/filter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,UAAU,YAAY;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;
|
|
1
|
+
{"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../src/extraction/filter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,UAAU,YAAY;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAyCD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAgBjE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,MAAM,EAAE,GACxB,OAAO,CAmBT"}
|