a2a-memory 0.8.1 → 0.9.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 (137) hide show
  1. package/dist/adapters/anthropic.d.ts.map +1 -1
  2. package/dist/adapters/anthropic.js +1 -0
  3. package/dist/adapters/anthropic.js.map +1 -1
  4. package/dist/claude/sync.js +6 -6
  5. package/dist/claude/sync.js.map +1 -1
  6. package/dist/cli/commands/config.d.ts.map +1 -1
  7. package/dist/cli/commands/config.js +16 -1
  8. package/dist/cli/commands/config.js.map +1 -1
  9. package/dist/cli/commands/health.d.ts.map +1 -1
  10. package/dist/cli/commands/health.js +3 -6
  11. package/dist/cli/commands/health.js.map +1 -1
  12. package/dist/cli/commands/proficiency.d.ts +8 -0
  13. package/dist/cli/commands/proficiency.d.ts.map +1 -0
  14. package/dist/cli/commands/proficiency.js +142 -0
  15. package/dist/cli/commands/proficiency.js.map +1 -0
  16. package/dist/cli/commands/skill.d.ts +8 -0
  17. package/dist/cli/commands/skill.d.ts.map +1 -0
  18. package/dist/cli/commands/skill.js +136 -0
  19. package/dist/cli/commands/skill.js.map +1 -0
  20. package/dist/cli/commands/sync.d.ts.map +1 -1
  21. package/dist/cli/commands/sync.js +15 -10
  22. package/dist/cli/commands/sync.js.map +1 -1
  23. package/dist/cli/commands/team.d.ts.map +1 -1
  24. package/dist/cli/commands/team.js +0 -2
  25. package/dist/cli/commands/team.js.map +1 -1
  26. package/dist/cli/index.js +4 -0
  27. package/dist/cli/index.js.map +1 -1
  28. package/dist/config/manager.d.ts +682 -0
  29. package/dist/config/manager.d.ts.map +1 -1
  30. package/dist/config/manager.js +77 -2
  31. package/dist/config/manager.js.map +1 -1
  32. package/dist/db/database.d.ts +65 -0
  33. package/dist/db/database.d.ts.map +1 -1
  34. package/dist/db/database.js +276 -3
  35. package/dist/db/database.js.map +1 -1
  36. package/dist/extraction/extractor.d.ts +4 -0
  37. package/dist/extraction/extractor.d.ts.map +1 -1
  38. package/dist/extraction/extractor.js +261 -38
  39. package/dist/extraction/extractor.js.map +1 -1
  40. package/dist/extraction/scorer.js +5 -3
  41. package/dist/extraction/scorer.js.map +1 -1
  42. package/dist/hooks/post-tool-use.d.ts.map +1 -1
  43. package/dist/hooks/post-tool-use.js +78 -15
  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 +103 -4
  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 +132 -36
  50. package/dist/hooks/session-start.js.map +1 -1
  51. package/dist/index.d.ts +3 -0
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js +2 -0
  54. package/dist/index.js.map +1 -1
  55. package/dist/lifecycle/cleanup.d.ts.map +1 -1
  56. package/dist/lifecycle/cleanup.js +2 -1
  57. package/dist/lifecycle/cleanup.js.map +1 -1
  58. package/dist/llm/client.d.ts +22 -0
  59. package/dist/llm/client.d.ts.map +1 -1
  60. package/dist/llm/client.js +74 -2
  61. package/dist/llm/client.js.map +1 -1
  62. package/dist/proficiency/actr-engine.d.ts +55 -0
  63. package/dist/proficiency/actr-engine.d.ts.map +1 -0
  64. package/dist/proficiency/actr-engine.js +106 -0
  65. package/dist/proficiency/actr-engine.js.map +1 -0
  66. package/dist/proficiency/detection.d.ts +38 -0
  67. package/dist/proficiency/detection.d.ts.map +1 -0
  68. package/dist/proficiency/detection.js +81 -0
  69. package/dist/proficiency/detection.js.map +1 -0
  70. package/dist/proficiency/index.d.ts +11 -0
  71. package/dist/proficiency/index.d.ts.map +1 -0
  72. package/dist/proficiency/index.js +9 -0
  73. package/dist/proficiency/index.js.map +1 -0
  74. package/dist/proficiency/tracker.d.ts +50 -0
  75. package/dist/proficiency/tracker.d.ts.map +1 -0
  76. package/dist/proficiency/tracker.js +170 -0
  77. package/dist/proficiency/tracker.js.map +1 -0
  78. package/dist/proficiency/types.d.ts +60 -0
  79. package/dist/proficiency/types.d.ts.map +1 -0
  80. package/dist/proficiency/types.js +8 -0
  81. package/dist/proficiency/types.js.map +1 -0
  82. package/dist/providers/adapters.d.ts +54 -0
  83. package/dist/providers/adapters.d.ts.map +1 -0
  84. package/dist/providers/adapters.js +140 -0
  85. package/dist/providers/adapters.js.map +1 -0
  86. package/dist/providers/detector.d.ts +17 -0
  87. package/dist/providers/detector.d.ts.map +1 -0
  88. package/dist/providers/detector.js +57 -0
  89. package/dist/providers/detector.js.map +1 -0
  90. package/dist/search/ranker.d.ts +26 -2
  91. package/dist/search/ranker.d.ts.map +1 -1
  92. package/dist/search/ranker.js +121 -46
  93. package/dist/search/ranker.js.map +1 -1
  94. package/dist/session/parser.d.ts.map +1 -1
  95. package/dist/session/parser.js +1 -0
  96. package/dist/session/parser.js.map +1 -1
  97. package/dist/skill/evaluator.d.ts +57 -0
  98. package/dist/skill/evaluator.d.ts.map +1 -0
  99. package/dist/skill/evaluator.js +373 -0
  100. package/dist/skill/evaluator.js.map +1 -0
  101. package/dist/skill/index.d.ts +8 -0
  102. package/dist/skill/index.d.ts.map +1 -0
  103. package/dist/skill/index.js +7 -0
  104. package/dist/skill/index.js.map +1 -0
  105. package/dist/skill/types.d.ts +34 -0
  106. package/dist/skill/types.d.ts.map +1 -0
  107. package/dist/skill/types.js +7 -0
  108. package/dist/skill/types.js.map +1 -0
  109. package/dist/sync/client.d.ts +82 -0
  110. package/dist/sync/client.d.ts.map +1 -1
  111. package/dist/sync/client.js +75 -1
  112. package/dist/sync/client.js.map +1 -1
  113. package/dist/sync/queue.d.ts +1 -0
  114. package/dist/sync/queue.d.ts.map +1 -1
  115. package/dist/sync/queue.js +33 -5
  116. package/dist/sync/queue.js.map +1 -1
  117. package/dist/sync/synchronizer.js +1 -1
  118. package/dist/sync/synchronizer.js.map +1 -1
  119. package/dist/sync/team-synchronizer.d.ts +6 -2
  120. package/dist/sync/team-synchronizer.d.ts.map +1 -1
  121. package/dist/sync/team-synchronizer.js +84 -6
  122. package/dist/sync/team-synchronizer.js.map +1 -1
  123. package/dist/sync/vector-clock.d.ts +7 -0
  124. package/dist/sync/vector-clock.d.ts.map +1 -1
  125. package/dist/sync/vector-clock.js +30 -0
  126. package/dist/sync/vector-clock.js.map +1 -1
  127. package/dist/types/index.d.ts +27 -1
  128. package/dist/types/index.d.ts.map +1 -1
  129. package/dist/types/index.js +24 -1
  130. package/dist/types/index.js.map +1 -1
  131. package/dist/utils/keychain.d.ts.map +1 -1
  132. package/dist/utils/keychain.js +4 -0
  133. package/dist/utils/keychain.js.map +1 -1
  134. package/dist/utils/logger.d.ts.map +1 -1
  135. package/dist/utils/logger.js +12 -2
  136. package/dist/utils/logger.js.map +1 -1
  137. package/package.json +1 -1
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Skill Evaluator
3
+ *
4
+ * ACT-R Knowledge Compilation 이론 기반으로, 반복적으로 사용되는 메모리 패턴을
5
+ * 자동으로 스킬(절차적 지식)로 결정화하는 엔진.
6
+ *
7
+ * 파이프라인:
8
+ * 1. 대상 메모리 수집 (임베딩 있는 메모리)
9
+ * 2. Greedy Agglomerative 클러스터링
10
+ * 3. 5조건 AND 평가
11
+ * 4. LLM 검증 (옵션)
12
+ * 5. N:1 압축하여 skill 메모리 생성
13
+ */
14
+ import type { MemoryDatabase } from '../db/database.js';
15
+ import type { A2AConfig, Memory } from '../types/index.js';
16
+ import type { SkillCandidate, SkillMetadata, EvaluationResult, ReviewResult } from './types.js';
17
+ export declare class SkillEvaluator {
18
+ private db;
19
+ private config;
20
+ constructor(db: MemoryDatabase, config: A2AConfig);
21
+ /**
22
+ * 메인 평가 파이프라인
23
+ */
24
+ evaluate(projectPath?: string): Promise<EvaluationResult>;
25
+ /**
26
+ * Greedy Agglomerative 클러스터링
27
+ * 코사인 유사도 ≥ threshold인 메모리들을 같은 클러스터로 그룹화
28
+ */
29
+ clusterMemories(memories: Memory[], threshold: number): Memory[][];
30
+ /**
31
+ * 5조건 AND 평가
32
+ * 1. 반복 횟수 ≥ minRepetitions
33
+ * 2. 평균 유사도 ≥ threshold (클러스터 내)
34
+ * 3. 신뢰도 ≥ minConfidence
35
+ * 4. 다중 세션 출현
36
+ * 5. 일관된 카테고리 (majority)
37
+ */
38
+ evaluateCluster(cluster: Memory[], minRepetitions: number, minConfidence: number): SkillCandidate | null;
39
+ /**
40
+ * LLM으로 스킬 유효성 검증
41
+ */
42
+ validateWithLLM(candidate: SkillCandidate): Promise<boolean>;
43
+ /**
44
+ * N:1 압축하여 skill 메모리 생성
45
+ */
46
+ compressToSkill(candidate: SkillCandidate): Memory;
47
+ /**
48
+ * 90일 주기 재평가: 비활성 스킬 강등
49
+ */
50
+ reviewSkills(): ReviewResult;
51
+ private computeAverageSimilarity;
52
+ private isDuplicateSkill;
53
+ private buildSkillContent;
54
+ extractMetadata(skill: Memory): SkillMetadata | null;
55
+ private averageEmbeddings;
56
+ }
57
+ //# sourceMappingURL=evaluator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluator.d.ts","sourceRoot":"","sources":["../../src/skill/evaluator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAkB,MAAM,mBAAmB,CAAC;AAE3E,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEhG,qBAAa,cAAc;IACzB,OAAO,CAAC,EAAE,CAAiB;IAC3B,OAAO,CAAC,MAAM,CAAY;gBAEd,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS;IAKjD;;OAEG;IACG,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAmF/D;;;OAGG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE;IA4BlE;;;;;;;OAOG;IACH,eAAe,CACb,OAAO,EAAE,MAAM,EAAE,EACjB,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,MAAM,GACpB,cAAc,GAAG,IAAI;IA0DxB;;OAEG;IACG,eAAe,CAAC,SAAS,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IA0BlE;;OAEG;IACH,eAAe,CAAC,SAAS,EAAE,cAAc,GAAG,MAAM;IAyClD;;OAEG;IACH,YAAY,IAAI,YAAY;IAqD5B,OAAO,CAAC,wBAAwB;IAkBhC,OAAO,CAAC,gBAAgB;IAkBxB,OAAO,CAAC,iBAAiB;IAqBzB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;IAYpD,OAAO,CAAC,iBAAiB;CAiB1B"}
@@ -0,0 +1,373 @@
1
+ /**
2
+ * Skill Evaluator
3
+ *
4
+ * ACT-R Knowledge Compilation 이론 기반으로, 반복적으로 사용되는 메모리 패턴을
5
+ * 자동으로 스킬(절차적 지식)로 결정화하는 엔진.
6
+ *
7
+ * 파이프라인:
8
+ * 1. 대상 메모리 수집 (임베딩 있는 메모리)
9
+ * 2. Greedy Agglomerative 클러스터링
10
+ * 3. 5조건 AND 평가
11
+ * 4. LLM 검증 (옵션)
12
+ * 5. N:1 압축하여 skill 메모리 생성
13
+ */
14
+ import { randomUUID } from 'node:crypto';
15
+ import { cosineSimilarity } from '../extraction/similarity.js';
16
+ export class SkillEvaluator {
17
+ db;
18
+ config;
19
+ constructor(db, config) {
20
+ this.db = db;
21
+ this.config = config;
22
+ }
23
+ /**
24
+ * 메인 평가 파이프라인
25
+ */
26
+ async evaluate(projectPath) {
27
+ const skillConfig = this.config.skillConversion;
28
+ if (!skillConfig?.enabled) {
29
+ return { candidates: [], created: 0, skipped: 0, errors: [] };
30
+ }
31
+ const errors = [];
32
+ const candidates = [];
33
+ let created = 0;
34
+ let skipped = 0;
35
+ try {
36
+ // 1. 대상 메모리 수집 (skill 카테고리 제외, 임베딩 있는 것만)
37
+ // limit 500: O(N²) 클러스터링이 Hook에서 실행되므로 성능 제한
38
+ const allMemories = this.db.listMemories({
39
+ limit: 500,
40
+ projectPath,
41
+ });
42
+ const targetMemories = allMemories.filter((m) => m.category !== 'skill' && m.embedding && m.embedding.length > 0);
43
+ if (targetMemories.length < skillConfig.minRepetitions) {
44
+ return { candidates, created, skipped: targetMemories.length, errors };
45
+ }
46
+ // 2. 클러스터링
47
+ const clusters = this.clusterMemories(targetMemories, skillConfig.similarityThreshold);
48
+ // 3. 현재 스킬 수 확인
49
+ const currentSkills = allMemories.filter((m) => m.category === 'skill');
50
+ let availableSlots = skillConfig.maxSkills - currentSkills.length;
51
+ // 4. 각 클러스터 평가
52
+ for (const cluster of clusters) {
53
+ if (availableSlots <= 0)
54
+ break;
55
+ const candidate = this.evaluateCluster(cluster, skillConfig.minRepetitions, skillConfig.minConfidence);
56
+ if (!candidate) {
57
+ skipped += cluster.length;
58
+ continue;
59
+ }
60
+ // 중복 스킬 확인: 이미 동일한 sourceMemoryIds로 만들어진 스킬이 있는지
61
+ const isDuplicate = this.isDuplicateSkill(candidate, currentSkills);
62
+ if (isDuplicate) {
63
+ skipped += cluster.length;
64
+ continue;
65
+ }
66
+ candidates.push(candidate);
67
+ // 5. LLM 검증 (옵션)
68
+ if (skillConfig.llmValidation && this.config.llm?.enabled) {
69
+ try {
70
+ const valid = await this.validateWithLLM(candidate);
71
+ if (!valid) {
72
+ skipped += cluster.length;
73
+ continue;
74
+ }
75
+ }
76
+ catch (llmErr) {
77
+ // LLM 실패 시 규칙 기반만으로 진행
78
+ errors.push(`LLM validation failed: ${llmErr instanceof Error ? llmErr.message : String(llmErr)}`);
79
+ }
80
+ }
81
+ // 6. 스킬 메모리 생성
82
+ try {
83
+ this.compressToSkill(candidate);
84
+ created++;
85
+ availableSlots--;
86
+ }
87
+ catch (createErr) {
88
+ errors.push(`Skill creation failed: ${createErr instanceof Error ? createErr.message : String(createErr)}`);
89
+ }
90
+ }
91
+ }
92
+ catch (err) {
93
+ errors.push(`Evaluation failed: ${err instanceof Error ? err.message : String(err)}`);
94
+ }
95
+ return { candidates, created, skipped, errors };
96
+ }
97
+ /**
98
+ * Greedy Agglomerative 클러스터링
99
+ * 코사인 유사도 ≥ threshold인 메모리들을 같은 클러스터로 그룹화
100
+ */
101
+ clusterMemories(memories, threshold) {
102
+ const assigned = new Set();
103
+ const clusters = [];
104
+ for (const memory of memories) {
105
+ if (assigned.has(memory.id))
106
+ continue;
107
+ if (!memory.embedding)
108
+ continue;
109
+ const cluster = [memory];
110
+ assigned.add(memory.id);
111
+ for (const other of memories) {
112
+ if (assigned.has(other.id))
113
+ continue;
114
+ if (!other.embedding)
115
+ continue;
116
+ const similarity = cosineSimilarity(memory.embedding, other.embedding);
117
+ if (similarity >= threshold) {
118
+ cluster.push(other);
119
+ assigned.add(other.id);
120
+ }
121
+ }
122
+ clusters.push(cluster);
123
+ }
124
+ return clusters;
125
+ }
126
+ /**
127
+ * 5조건 AND 평가
128
+ * 1. 반복 횟수 ≥ minRepetitions
129
+ * 2. 평균 유사도 ≥ threshold (클러스터 내)
130
+ * 3. 신뢰도 ≥ minConfidence
131
+ * 4. 다중 세션 출현
132
+ * 5. 일관된 카테고리 (majority)
133
+ */
134
+ evaluateCluster(cluster, minRepetitions, minConfidence) {
135
+ // 조건 1: 최소 반복 횟수
136
+ if (cluster.length < minRepetitions)
137
+ return null;
138
+ // 조건 2: 평균 코사인 유사도 (클러스터 내)
139
+ const avgSimilarity = this.computeAverageSimilarity(cluster);
140
+ if (avgSimilarity < (this.config.skillConversion?.similarityThreshold ?? 0.85))
141
+ return null;
142
+ // 조건 3: 신뢰도 계산 (반복*유사도*다중세션)
143
+ const sessionIds = new Set(cluster.map((m) => m.sessionId).filter(Boolean));
144
+ const multiSessionFactor = Math.min(sessionIds.size / 2, 1); // 2+ sessions → 1.0
145
+ const confidence = avgSimilarity * multiSessionFactor;
146
+ if (confidence < minConfidence)
147
+ return null;
148
+ // 조건 4: 다중 세션 출현 (최소 2개 세션)
149
+ if (sessionIds.size < 2)
150
+ return null;
151
+ // 조건 5: 일관된 카테고리 (majority vote)
152
+ const categoryCounts = new Map();
153
+ for (const m of cluster) {
154
+ categoryCounts.set(m.category, (categoryCounts.get(m.category) ?? 0) + 1);
155
+ }
156
+ let majorityCategory = cluster[0].category;
157
+ let maxCount = 0;
158
+ for (const [cat, count] of categoryCounts) {
159
+ if (count > maxCount) {
160
+ maxCount = count;
161
+ majorityCategory = cat;
162
+ }
163
+ }
164
+ // majority가 50% 미만이면 일관성 부족
165
+ if (maxCount / cluster.length < 0.5)
166
+ return null;
167
+ // 패턴 요약: 가장 짧은 content를 대표로 사용
168
+ const sorted = [...cluster].sort((a, b) => a.content.length - b.content.length);
169
+ const pattern = sorted[0].content.slice(0, 500);
170
+ // 태그 통합 (빈도 ≥ 2인 태그만)
171
+ const tagCounts = new Map();
172
+ for (const m of cluster) {
173
+ for (const tag of m.tags) {
174
+ tagCounts.set(tag, (tagCounts.get(tag) ?? 0) + 1);
175
+ }
176
+ }
177
+ const tags = Array.from(tagCounts.entries())
178
+ .filter(([, count]) => count >= 2)
179
+ .map(([tag]) => tag);
180
+ return {
181
+ clusterId: randomUUID(),
182
+ sourceMemories: cluster,
183
+ category: majorityCategory,
184
+ confidence,
185
+ pattern,
186
+ tags: [...tags, 'skill', 'crystallized'],
187
+ };
188
+ }
189
+ /**
190
+ * LLM으로 스킬 유효성 검증
191
+ */
192
+ async validateWithLLM(candidate) {
193
+ try {
194
+ const { createLLMClient } = await import('../llm/index.js');
195
+ const client = createLLMClient(this.config.llm);
196
+ const prompt = [
197
+ 'Determine if these similar memories represent a reusable skill/pattern.',
198
+ 'Respond with JSON: {"valid": true/false, "confidence": 0.0-1.0}',
199
+ '',
200
+ `Category: ${candidate.category}`,
201
+ `Pattern: ${candidate.pattern}`,
202
+ `Source count: ${candidate.sourceMemories.length}`,
203
+ '',
204
+ 'Sample memories:',
205
+ ...candidate.sourceMemories.slice(0, 3).map((m, i) => `${i + 1}. ${m.content.slice(0, 200)}`),
206
+ ].join('\n');
207
+ const result = await client.complete(prompt);
208
+ const parsed = JSON.parse(result);
209
+ return parsed.valid === true && (parsed.confidence ?? 0) >= (this.config.skillConversion?.minConfidence ?? 0.7);
210
+ }
211
+ catch {
212
+ // LLM 검증 실패 시 규칙 기반 결과를 신뢰
213
+ return true;
214
+ }
215
+ }
216
+ /**
217
+ * N:1 압축하여 skill 메모리 생성
218
+ */
219
+ compressToSkill(candidate) {
220
+ const now = new Date().toISOString();
221
+ const reviewDueAt = new Date(Date.now() + (this.config.skillConversion?.reviewCycleDays ?? 90) * 24 * 60 * 60 * 1000).toISOString();
222
+ // 압축된 content 생성
223
+ const content = this.buildSkillContent(candidate);
224
+ // 메타데이터를 tags에 인코딩 (JSON tag)
225
+ const metadata = {
226
+ sourceMemoryIds: candidate.sourceMemories.map((m) => m.id),
227
+ crystallizedAt: now,
228
+ confidence: candidate.confidence,
229
+ reviewDueAt,
230
+ activationCount: 0,
231
+ };
232
+ const metadataTag = `meta:${Buffer.from(JSON.stringify(metadata)).toString('base64')}`;
233
+ const memory = this.db.createMemory({
234
+ content,
235
+ category: 'skill',
236
+ tier: 'semantic',
237
+ tags: [...candidate.tags, metadataTag],
238
+ projectPath: candidate.sourceMemories[0]?.projectPath,
239
+ });
240
+ // 소스 메모리의 임베딩 평균을 스킬 임베딩으로 사용
241
+ const embeddings = candidate.sourceMemories
242
+ .map((m) => m.embedding)
243
+ .filter((e) => !!e && e.length > 0);
244
+ if (embeddings.length > 0) {
245
+ const avgEmbedding = this.averageEmbeddings(embeddings);
246
+ this.db.saveEmbedding(memory.id, avgEmbedding);
247
+ }
248
+ return memory;
249
+ }
250
+ /**
251
+ * 90일 주기 재평가: 비활성 스킬 강등
252
+ */
253
+ reviewSkills() {
254
+ const now = new Date();
255
+ let reviewed = 0;
256
+ let demoted = 0;
257
+ let renewed = 0;
258
+ const skillMemories = this.db.listMemories({ category: 'skill', limit: 1000 });
259
+ for (const skill of skillMemories) {
260
+ reviewed++;
261
+ const metadata = this.extractMetadata(skill);
262
+ if (!metadata)
263
+ continue;
264
+ const reviewDue = new Date(metadata.reviewDueAt);
265
+ if (now < reviewDue)
266
+ continue;
267
+ // 활성도 확인: accessCount가 낮으면 강등
268
+ if (skill.accessCount < 2) {
269
+ // 강등: skill → 원래 카테고리의 learning으로 전환
270
+ this.db.updateMemory(skill.id, {
271
+ category: 'learning',
272
+ tags: skill.tags.filter((t) => !t.startsWith('meta:') && t !== 'skill' && t !== 'crystallized'),
273
+ });
274
+ demoted++;
275
+ }
276
+ else {
277
+ // 갱신: reviewDueAt 연장
278
+ const newReviewDueAt = new Date(Date.now() + (this.config.skillConversion?.reviewCycleDays ?? 90) * 24 * 60 * 60 * 1000).toISOString();
279
+ const newMetadata = {
280
+ ...metadata,
281
+ reviewDueAt: newReviewDueAt,
282
+ activationCount: skill.accessCount,
283
+ lastActivatedAt: skill.lastAccessedAt,
284
+ };
285
+ const newMetaTag = `meta:${Buffer.from(JSON.stringify(newMetadata)).toString('base64')}`;
286
+ const updatedTags = skill.tags.filter((t) => !t.startsWith('meta:'));
287
+ updatedTags.push(newMetaTag);
288
+ this.db.updateMemory(skill.id, { tags: updatedTags });
289
+ renewed++;
290
+ }
291
+ }
292
+ return { reviewed, demoted, renewed };
293
+ }
294
+ // ============================
295
+ // Private helpers
296
+ // ============================
297
+ computeAverageSimilarity(cluster) {
298
+ if (cluster.length < 2)
299
+ return 1.0;
300
+ let totalSim = 0;
301
+ let pairs = 0;
302
+ for (let i = 0; i < cluster.length; i++) {
303
+ for (let j = i + 1; j < cluster.length; j++) {
304
+ if (cluster[i].embedding && cluster[j].embedding) {
305
+ totalSim += cosineSimilarity(cluster[i].embedding, cluster[j].embedding);
306
+ pairs++;
307
+ }
308
+ }
309
+ }
310
+ return pairs > 0 ? totalSim / pairs : 0;
311
+ }
312
+ isDuplicateSkill(candidate, existingSkills) {
313
+ const sourceIds = new Set(candidate.sourceMemories.map((m) => m.id));
314
+ for (const skill of existingSkills) {
315
+ const metadata = this.extractMetadata(skill);
316
+ if (!metadata)
317
+ continue;
318
+ const existingIds = new Set(metadata.sourceMemoryIds);
319
+ const overlap = [...sourceIds].filter((id) => existingIds.has(id)).length;
320
+ const overlapRatio = overlap / Math.max(sourceIds.size, existingIds.size);
321
+ // 70% 이상 중복이면 동일 스킬로 간주
322
+ if (overlapRatio >= 0.7)
323
+ return true;
324
+ }
325
+ return false;
326
+ }
327
+ buildSkillContent(candidate) {
328
+ const lines = [];
329
+ lines.push(`[Skill] ${candidate.pattern}`);
330
+ lines.push('');
331
+ lines.push(`Category: ${candidate.category}`);
332
+ lines.push(`Sources: ${candidate.sourceMemories.length} memories`);
333
+ lines.push(`Confidence: ${(candidate.confidence * 100).toFixed(0)}%`);
334
+ if (candidate.sourceMemories.length > 1) {
335
+ lines.push('');
336
+ lines.push('Key patterns:');
337
+ // 상위 3개 소스의 핵심 내용
338
+ for (const m of candidate.sourceMemories.slice(0, 3)) {
339
+ const summary = m.content.split('\n')[0].slice(0, 150);
340
+ lines.push(`- ${summary}`);
341
+ }
342
+ }
343
+ return lines.join('\n');
344
+ }
345
+ extractMetadata(skill) {
346
+ const metaTag = skill.tags.find((t) => t.startsWith('meta:'));
347
+ if (!metaTag)
348
+ return null;
349
+ try {
350
+ const json = Buffer.from(metaTag.slice(5), 'base64').toString('utf-8');
351
+ return JSON.parse(json);
352
+ }
353
+ catch {
354
+ return null;
355
+ }
356
+ }
357
+ averageEmbeddings(embeddings) {
358
+ if (embeddings.length === 0)
359
+ return [];
360
+ const dim = embeddings[0].length;
361
+ const avg = new Array(dim).fill(0);
362
+ for (const emb of embeddings) {
363
+ for (let i = 0; i < dim; i++) {
364
+ avg[i] += emb[i];
365
+ }
366
+ }
367
+ for (let i = 0; i < dim; i++) {
368
+ avg[i] /= embeddings.length;
369
+ }
370
+ return avg;
371
+ }
372
+ }
373
+ //# sourceMappingURL=evaluator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../../src/skill/evaluator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Skill Crystallization Module
3
+ *
4
+ * ACT-R Knowledge Compilation 기반 스킬 결정화 시스템.
5
+ */
6
+ export { SkillEvaluator } from './evaluator.js';
7
+ export type { SkillCandidate, SkillMetadata, EvaluationResult, ReviewResult } from './types.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/skill/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Skill Crystallization Module
3
+ *
4
+ * ACT-R Knowledge Compilation 기반 스킬 결정화 시스템.
5
+ */
6
+ export { SkillEvaluator } from './evaluator.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/skill/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Skill Crystallization Types
3
+ *
4
+ * ACT-R Knowledge Compilation 기반 스킬 결정화 내부 타입.
5
+ */
6
+ import type { Memory, MemoryCategory } from '../types/index.js';
7
+ export interface SkillCandidate {
8
+ clusterId: string;
9
+ sourceMemories: Memory[];
10
+ category: MemoryCategory;
11
+ confidence: number;
12
+ pattern: string;
13
+ tags: string[];
14
+ }
15
+ export interface SkillMetadata {
16
+ sourceMemoryIds: string[];
17
+ crystallizedAt: string;
18
+ confidence: number;
19
+ reviewDueAt: string;
20
+ activationCount: number;
21
+ lastActivatedAt?: string;
22
+ }
23
+ export interface EvaluationResult {
24
+ candidates: SkillCandidate[];
25
+ created: number;
26
+ skipped: number;
27
+ errors: string[];
28
+ }
29
+ export interface ReviewResult {
30
+ reviewed: number;
31
+ demoted: number;
32
+ renewed: number;
33
+ }
34
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/skill/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEhE,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,EAAE,cAAc,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Skill Crystallization Types
3
+ *
4
+ * ACT-R Knowledge Compilation 기반 스킬 결정화 내부 타입.
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/skill/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -178,6 +178,88 @@ export declare class A2AClient {
178
178
  totalNodes: number;
179
179
  lastSyncedAt: string | null;
180
180
  }>;
181
+ /**
182
+ * 숙련도 이벤트 전송
183
+ */
184
+ postProficiencyEvent(event: {
185
+ skill_memory_id: string;
186
+ outcome: string;
187
+ difficulty: number;
188
+ context_tags: string[];
189
+ session_id?: string;
190
+ }): Promise<{
191
+ previous_level: number;
192
+ new_level: number;
193
+ activation: number;
194
+ experience_count: number;
195
+ level_changed: boolean;
196
+ }>;
197
+ /**
198
+ * 배치 이벤트 전송 (오프라인 큐 flush용)
199
+ */
200
+ postProficiencyEventBatch(events: Array<{
201
+ skill_memory_id: string;
202
+ outcome: string;
203
+ difficulty: number;
204
+ context_tags: string[];
205
+ session_id?: string;
206
+ }>): Promise<void>;
207
+ /**
208
+ * 숙련도 목록 조회 (캐시용)
209
+ */
210
+ listProficiencies(projectPath?: string): Promise<Array<{
211
+ id: string;
212
+ skill_memory_id: string;
213
+ skill_name: string;
214
+ level: number;
215
+ experience_count: number;
216
+ success_rate: number;
217
+ last_practiced_at: string | null;
218
+ }>>;
219
+ /**
220
+ * 숙련도 내보내기
221
+ */
222
+ exportProficiencies(sourceProvider: string, skillIds?: string[]): Promise<{
223
+ package: Record<string, unknown>;
224
+ skills_count: number;
225
+ }>;
226
+ /**
227
+ * 숙련도 가져오기
228
+ */
229
+ importProficiencies(pkg: Record<string, unknown>, targetProvider: string): Promise<{
230
+ imported: number;
231
+ skipped: number;
232
+ failed: number;
233
+ compatibility_score: number;
234
+ transfer_record_id: string;
235
+ }>;
236
+ /**
237
+ * 호환성 매트릭스 조회
238
+ */
239
+ getCompatibilityMatrix(): Promise<Array<{
240
+ source: string;
241
+ target: string;
242
+ score: number;
243
+ }>>;
244
+ /**
245
+ * 이식 이력 조회
246
+ */
247
+ getTransferHistory(page?: number): Promise<{
248
+ items: Array<{
249
+ id: string;
250
+ source_agent_id: string;
251
+ target_agent_id: string;
252
+ source_provider: string;
253
+ target_provider: string;
254
+ skills_count: number;
255
+ compatibility_score: number;
256
+ status: string;
257
+ created_at: string;
258
+ }>;
259
+ total: number;
260
+ page: number;
261
+ total_pages: number;
262
+ }>;
181
263
  /**
182
264
  * HTTP 요청 실행
183
265
  */
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/sync/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/sync/client.ts"],"names":[],"mappings":"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"}