@timmeck/brain-core 2.34.0 → 2.35.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 +15 -14
- package/dist/codegen/context-builder.js +16 -16
- package/dist/codegen/context-builder.js.map +1 -1
- package/dist/concept-abstraction/concept-abstraction.d.ts +139 -0
- package/dist/concept-abstraction/concept-abstraction.js +532 -0
- package/dist/concept-abstraction/concept-abstraction.js.map +1 -0
- package/dist/concept-abstraction/index.d.ts +2 -0
- package/dist/concept-abstraction/index.js +2 -0
- package/dist/concept-abstraction/index.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/memory-palace/memory-palace.d.ts +2 -2
- package/dist/memory-palace/memory-palace.js.map +1 -1
- package/dist/research/auto-responder.js +10 -10
- package/dist/research/auto-responder.js.map +1 -1
- package/dist/research/research-orchestrator.d.ts +4 -0
- package/dist/research/research-orchestrator.js +151 -75
- package/dist/research/research-orchestrator.js.map +1 -1
- package/dist/self-modification/self-modification-engine.js +15 -13
- package/dist/self-modification/self-modification-engine.js.map +1 -1
- package/dist/unified/unified-server.d.ts +1 -0
- package/dist/unified/unified-server.js +7 -0
- package/dist/unified/unified-server.js.map +1 -1
- package/package.json +1 -1
- package/unified-dashboard.html +390 -259
|
@@ -0,0 +1,532 @@
|
|
|
1
|
+
import { getLogger } from '../utils/logger.js';
|
|
2
|
+
// ── Migration ───────────────────────────────────────────
|
|
3
|
+
export function runConceptAbstractionMigration(db) {
|
|
4
|
+
db.exec(`
|
|
5
|
+
CREATE TABLE IF NOT EXISTS abstract_concepts (
|
|
6
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
7
|
+
title TEXT NOT NULL,
|
|
8
|
+
description TEXT NOT NULL DEFAULT '',
|
|
9
|
+
level INTEGER NOT NULL DEFAULT 0,
|
|
10
|
+
parent_id INTEGER,
|
|
11
|
+
domain TEXT NOT NULL DEFAULT 'general',
|
|
12
|
+
member_count INTEGER NOT NULL DEFAULT 0,
|
|
13
|
+
avg_confidence REAL NOT NULL DEFAULT 0,
|
|
14
|
+
avg_similarity REAL NOT NULL DEFAULT 0,
|
|
15
|
+
keywords TEXT NOT NULL DEFAULT '[]',
|
|
16
|
+
transferability REAL NOT NULL DEFAULT 0,
|
|
17
|
+
created_at TEXT DEFAULT (datetime('now')),
|
|
18
|
+
updated_at TEXT DEFAULT (datetime('now')),
|
|
19
|
+
FOREIGN KEY (parent_id) REFERENCES abstract_concepts(id) ON DELETE SET NULL
|
|
20
|
+
);
|
|
21
|
+
CREATE INDEX IF NOT EXISTS idx_abstract_concepts_level ON abstract_concepts(level);
|
|
22
|
+
CREATE INDEX IF NOT EXISTS idx_abstract_concepts_parent ON abstract_concepts(parent_id);
|
|
23
|
+
CREATE INDEX IF NOT EXISTS idx_abstract_concepts_transferability ON abstract_concepts(transferability DESC);
|
|
24
|
+
|
|
25
|
+
CREATE TABLE IF NOT EXISTS concept_members (
|
|
26
|
+
concept_id INTEGER NOT NULL,
|
|
27
|
+
member_type TEXT NOT NULL,
|
|
28
|
+
member_id INTEGER NOT NULL,
|
|
29
|
+
similarity_to_centroid REAL NOT NULL DEFAULT 0,
|
|
30
|
+
PRIMARY KEY (concept_id, member_type, member_id),
|
|
31
|
+
FOREIGN KEY (concept_id) REFERENCES abstract_concepts(id) ON DELETE CASCADE
|
|
32
|
+
);
|
|
33
|
+
CREATE INDEX IF NOT EXISTS idx_concept_members_type ON concept_members(member_type);
|
|
34
|
+
|
|
35
|
+
CREATE TABLE IF NOT EXISTS concept_history (
|
|
36
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
37
|
+
cycle INTEGER NOT NULL,
|
|
38
|
+
total_concepts INTEGER NOT NULL DEFAULT 0,
|
|
39
|
+
concepts_by_level TEXT NOT NULL DEFAULT '{}',
|
|
40
|
+
new_count INTEGER NOT NULL DEFAULT 0,
|
|
41
|
+
merged_count INTEGER NOT NULL DEFAULT 0,
|
|
42
|
+
avg_transferability REAL NOT NULL DEFAULT 0,
|
|
43
|
+
created_at TEXT DEFAULT (datetime('now'))
|
|
44
|
+
);
|
|
45
|
+
CREATE INDEX IF NOT EXISTS idx_concept_history_cycle ON concept_history(cycle DESC);
|
|
46
|
+
`);
|
|
47
|
+
}
|
|
48
|
+
// ── Engine ──────────────────────────────────────────────
|
|
49
|
+
export class ConceptAbstraction {
|
|
50
|
+
db;
|
|
51
|
+
config;
|
|
52
|
+
log = getLogger();
|
|
53
|
+
ts = null;
|
|
54
|
+
sources = null;
|
|
55
|
+
cycleCount = 0;
|
|
56
|
+
// Prepared statements
|
|
57
|
+
insertConcept;
|
|
58
|
+
insertMember;
|
|
59
|
+
insertHistory;
|
|
60
|
+
getConceptById;
|
|
61
|
+
getMembersByConcept;
|
|
62
|
+
getConceptsByLevelStmt;
|
|
63
|
+
getChildConcepts;
|
|
64
|
+
getTopConceptsStmt;
|
|
65
|
+
getTransferableStmt;
|
|
66
|
+
getHistoryStmt;
|
|
67
|
+
countConceptsStmt;
|
|
68
|
+
countByLevelStmt;
|
|
69
|
+
avgTransferabilityStmt;
|
|
70
|
+
clearConceptsStmt;
|
|
71
|
+
clearMembersStmt;
|
|
72
|
+
constructor(db, config) {
|
|
73
|
+
this.db = db;
|
|
74
|
+
this.config = {
|
|
75
|
+
brainName: config.brainName,
|
|
76
|
+
clusterThreshold: config.clusterThreshold ?? 0.35,
|
|
77
|
+
minClusterSize: config.minClusterSize ?? 3,
|
|
78
|
+
level1Threshold: config.level1Threshold ?? 0.25,
|
|
79
|
+
level2Threshold: config.level2Threshold ?? 0.20,
|
|
80
|
+
keywordMinRatio: config.keywordMinRatio ?? 0.6,
|
|
81
|
+
};
|
|
82
|
+
runConceptAbstractionMigration(db);
|
|
83
|
+
this.insertConcept = db.prepare(`
|
|
84
|
+
INSERT INTO abstract_concepts (title, description, level, parent_id, domain, member_count, avg_confidence, avg_similarity, keywords, transferability)
|
|
85
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
86
|
+
`);
|
|
87
|
+
this.insertMember = db.prepare(`
|
|
88
|
+
INSERT OR REPLACE INTO concept_members (concept_id, member_type, member_id, similarity_to_centroid)
|
|
89
|
+
VALUES (?, ?, ?, ?)
|
|
90
|
+
`);
|
|
91
|
+
this.insertHistory = db.prepare(`
|
|
92
|
+
INSERT INTO concept_history (cycle, total_concepts, concepts_by_level, new_count, merged_count, avg_transferability)
|
|
93
|
+
VALUES (?, ?, ?, ?, ?, ?)
|
|
94
|
+
`);
|
|
95
|
+
this.getConceptById = db.prepare('SELECT * FROM abstract_concepts WHERE id = ?');
|
|
96
|
+
this.getMembersByConcept = db.prepare('SELECT * FROM concept_members WHERE concept_id = ?');
|
|
97
|
+
this.getConceptsByLevelStmt = db.prepare('SELECT * FROM abstract_concepts WHERE level = ? ORDER BY member_count DESC');
|
|
98
|
+
this.getChildConcepts = db.prepare('SELECT * FROM abstract_concepts WHERE parent_id = ? ORDER BY member_count DESC');
|
|
99
|
+
this.getTopConceptsStmt = db.prepare('SELECT * FROM abstract_concepts ORDER BY member_count DESC, transferability DESC LIMIT ?');
|
|
100
|
+
this.getTransferableStmt = db.prepare('SELECT * FROM abstract_concepts WHERE transferability >= ? ORDER BY transferability DESC, member_count DESC');
|
|
101
|
+
this.getHistoryStmt = db.prepare('SELECT * FROM concept_history ORDER BY cycle DESC LIMIT ?');
|
|
102
|
+
this.countConceptsStmt = db.prepare('SELECT COUNT(*) as count FROM abstract_concepts');
|
|
103
|
+
this.countByLevelStmt = db.prepare('SELECT level, COUNT(*) as count FROM abstract_concepts GROUP BY level');
|
|
104
|
+
this.avgTransferabilityStmt = db.prepare('SELECT AVG(transferability) as avg FROM abstract_concepts');
|
|
105
|
+
this.clearConceptsStmt = db.prepare('DELETE FROM abstract_concepts');
|
|
106
|
+
this.clearMembersStmt = db.prepare('DELETE FROM concept_members');
|
|
107
|
+
}
|
|
108
|
+
setThoughtStream(stream) {
|
|
109
|
+
this.ts = stream;
|
|
110
|
+
}
|
|
111
|
+
setDataSources(sources) {
|
|
112
|
+
this.sources = sources;
|
|
113
|
+
}
|
|
114
|
+
// ── Main algorithm ────────────────────────────────────
|
|
115
|
+
/** Run concept formation: gather → cluster → hierarchy → persist */
|
|
116
|
+
formConcepts() {
|
|
117
|
+
this.cycleCount++;
|
|
118
|
+
const ts = this.ts;
|
|
119
|
+
ts?.emit('concept_abstraction', 'analyzing', 'Forming abstract concepts from knowledge...', 'routine');
|
|
120
|
+
if (!this.sources) {
|
|
121
|
+
this.log.warn('[concept-abstraction] No data sources set');
|
|
122
|
+
return { newConcepts: 0, totalConcepts: 0, levels: {} };
|
|
123
|
+
}
|
|
124
|
+
// Phase 1: Gather all knowledge items
|
|
125
|
+
const items = this.gatherItems();
|
|
126
|
+
if (items.length < this.config.minClusterSize) {
|
|
127
|
+
ts?.emit('concept_abstraction', 'reflecting', `Not enough items to cluster (${items.length})`, 'routine');
|
|
128
|
+
return { newConcepts: 0, totalConcepts: this.getTotalCount(), levels: this.getLevelCounts() };
|
|
129
|
+
}
|
|
130
|
+
// Count existing before clearing
|
|
131
|
+
const existingCount = this.getTotalCount();
|
|
132
|
+
// Clear old concepts for full rebuild
|
|
133
|
+
this.db.transaction(() => {
|
|
134
|
+
this.clearMembersStmt.run();
|
|
135
|
+
this.clearConceptsStmt.run();
|
|
136
|
+
})();
|
|
137
|
+
// Phase 2: Cluster level 0 (concrete → abstract)
|
|
138
|
+
const level0Clusters = this.clusterItems(items, this.config.clusterThreshold);
|
|
139
|
+
const level0Concepts = this.persistClusters(level0Clusters, 0, null);
|
|
140
|
+
// Phase 3: Hierarchy — re-cluster level 0 concepts into level 1
|
|
141
|
+
let level1Concepts = [];
|
|
142
|
+
if (level0Concepts.length >= this.config.minClusterSize) {
|
|
143
|
+
const l0Items = this.conceptsToItems(level0Concepts);
|
|
144
|
+
const level1Clusters = this.clusterItems(l0Items, this.config.level1Threshold);
|
|
145
|
+
level1Concepts = this.persistClusters(level1Clusters, 1, null);
|
|
146
|
+
// Link level-0 → level-1 parentage
|
|
147
|
+
for (const cluster of level1Clusters) {
|
|
148
|
+
const parentId = this.findConceptByTitle(cluster.centroid.text, 1);
|
|
149
|
+
if (parentId) {
|
|
150
|
+
for (const item of cluster.items) {
|
|
151
|
+
if (item.type === 'concept') {
|
|
152
|
+
this.db.prepare('UPDATE abstract_concepts SET parent_id = ? WHERE id = ?').run(parentId, item.id);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
// Phase 3b: level 1 → level 2
|
|
159
|
+
let level2Concepts = [];
|
|
160
|
+
if (level1Concepts.length >= this.config.minClusterSize) {
|
|
161
|
+
const l1Items = this.conceptsToItems(level1Concepts);
|
|
162
|
+
const level2Clusters = this.clusterItems(l1Items, this.config.level2Threshold);
|
|
163
|
+
level2Concepts = this.persistClusters(level2Clusters, 2, null);
|
|
164
|
+
for (const cluster of level2Clusters) {
|
|
165
|
+
const parentId = this.findConceptByTitle(cluster.centroid.text, 2);
|
|
166
|
+
if (parentId) {
|
|
167
|
+
for (const item of cluster.items) {
|
|
168
|
+
if (item.type === 'concept') {
|
|
169
|
+
this.db.prepare('UPDATE abstract_concepts SET parent_id = ? WHERE id = ?').run(parentId, item.id);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
const totalConcepts = this.getTotalCount();
|
|
176
|
+
const levels = this.getLevelCounts();
|
|
177
|
+
const newCount = Math.max(0, totalConcepts - existingCount);
|
|
178
|
+
const mergedCount = Math.max(0, existingCount - totalConcepts);
|
|
179
|
+
const avgTransfer = this.avgTransferabilityStmt.get()?.avg ?? 0;
|
|
180
|
+
// Record history
|
|
181
|
+
this.insertHistory.run(this.cycleCount, totalConcepts, JSON.stringify(levels), newCount, mergedCount, avgTransfer);
|
|
182
|
+
ts?.emit('concept_abstraction', 'discovering', `Formed ${totalConcepts} concepts (L0: ${levels[0] ?? 0}, L1: ${levels[1] ?? 0}, L2: ${levels[2] ?? 0})`, totalConcepts > 0 ? 'notable' : 'routine');
|
|
183
|
+
this.log.info(`[concept-abstraction] Formed ${totalConcepts} concepts across ${Object.keys(levels).length} levels`);
|
|
184
|
+
return { newConcepts: newCount, totalConcepts, levels };
|
|
185
|
+
}
|
|
186
|
+
// ── Queries ───────────────────────────────────────────
|
|
187
|
+
getConceptsByLevel(level) {
|
|
188
|
+
const rows = this.getConceptsByLevelStmt.all(level);
|
|
189
|
+
return rows.map(toAbstractConcept);
|
|
190
|
+
}
|
|
191
|
+
getHierarchy(conceptId) {
|
|
192
|
+
const row = this.getConceptById.get(conceptId);
|
|
193
|
+
if (!row)
|
|
194
|
+
return null;
|
|
195
|
+
const concept = toAbstractConcept(row);
|
|
196
|
+
const members = this.getMembersByConcept.all(conceptId).map(toConceptMember);
|
|
197
|
+
const children = this.getChildConcepts.all(conceptId).map(r => {
|
|
198
|
+
const child = toAbstractConcept(r);
|
|
199
|
+
const childMembers = this.getMembersByConcept.all(r.id).map(toConceptMember);
|
|
200
|
+
const grandchildren = this.getChildConcepts.all(r.id).map(gc => ({
|
|
201
|
+
concept: toAbstractConcept(gc),
|
|
202
|
+
children: [],
|
|
203
|
+
members: this.getMembersByConcept.all(gc.id).map(toConceptMember),
|
|
204
|
+
}));
|
|
205
|
+
return { concept: child, children: grandchildren, members: childMembers };
|
|
206
|
+
});
|
|
207
|
+
return { concept, children, members };
|
|
208
|
+
}
|
|
209
|
+
getMembers(conceptId) {
|
|
210
|
+
return this.getMembersByConcept.all(conceptId).map(toConceptMember);
|
|
211
|
+
}
|
|
212
|
+
getTransferableConcepts(minTransferability = 0.3) {
|
|
213
|
+
return this.getTransferableStmt.all(minTransferability).map(toAbstractConcept);
|
|
214
|
+
}
|
|
215
|
+
/** Register all concepts as nodes in MemoryPalace and link members. */
|
|
216
|
+
registerInPalace(palace) {
|
|
217
|
+
const concepts = this.getTopConceptsStmt.all(500).map(toAbstractConcept);
|
|
218
|
+
let registered = 0;
|
|
219
|
+
for (const concept of concepts) {
|
|
220
|
+
// Register concept node
|
|
221
|
+
palace.addConnection('concept', String(concept.id), 'concept', String(concept.id), 'related_to', 0);
|
|
222
|
+
// Link members → concept
|
|
223
|
+
const members = this.getMembers(concept.id);
|
|
224
|
+
for (const member of members) {
|
|
225
|
+
if (member.memberType !== 'concept') {
|
|
226
|
+
palace.addConnection(member.memberType, String(member.memberId), 'concept', String(concept.id), 'abstracted_from', member.similarityToCentroid);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
// Link child concepts with 'generalizes'
|
|
230
|
+
if (concept.parentId) {
|
|
231
|
+
palace.addConnection('concept', String(concept.parentId), 'concept', String(concept.id), 'generalizes', concept.avgSimilarity);
|
|
232
|
+
}
|
|
233
|
+
registered++;
|
|
234
|
+
}
|
|
235
|
+
return registered;
|
|
236
|
+
}
|
|
237
|
+
getStatus() {
|
|
238
|
+
return {
|
|
239
|
+
totalConcepts: this.getTotalCount(),
|
|
240
|
+
conceptsByLevel: this.getLevelCounts(),
|
|
241
|
+
avgTransferability: this.avgTransferabilityStmt.get()?.avg ?? 0,
|
|
242
|
+
topConcepts: this.getTopConceptsStmt.all(10).map(toAbstractConcept),
|
|
243
|
+
recentHistory: this.getHistoryStmt.all(10).map(toHistoryEntry),
|
|
244
|
+
cycleCount: this.cycleCount,
|
|
245
|
+
};
|
|
246
|
+
}
|
|
247
|
+
// ── Private: Gathering ────────────────────────────────
|
|
248
|
+
gatherItems() {
|
|
249
|
+
const items = [];
|
|
250
|
+
if (!this.sources)
|
|
251
|
+
return items;
|
|
252
|
+
try {
|
|
253
|
+
const principles = this.sources.getPrinciples(undefined, 500);
|
|
254
|
+
for (const p of principles) {
|
|
255
|
+
items.push({
|
|
256
|
+
type: 'principle',
|
|
257
|
+
id: typeof p.id === 'string' ? parseInt(p.id, 10) || 0 : (p.id ?? 0),
|
|
258
|
+
text: p.statement,
|
|
259
|
+
confidence: p.confidence,
|
|
260
|
+
domain: p.domain ?? 'general',
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
catch (err) {
|
|
265
|
+
this.log.warn(`[concept-abstraction] Error gathering principles: ${err.message}`);
|
|
266
|
+
}
|
|
267
|
+
try {
|
|
268
|
+
const antiPatterns = this.sources.getAntiPatterns(undefined, 500);
|
|
269
|
+
for (const ap of antiPatterns) {
|
|
270
|
+
items.push({
|
|
271
|
+
type: 'anti_pattern',
|
|
272
|
+
id: typeof ap.id === 'string' ? parseInt(ap.id, 10) || 0 : (ap.id ?? 0),
|
|
273
|
+
text: ap.statement,
|
|
274
|
+
confidence: ap.confidence ?? 0.7,
|
|
275
|
+
domain: ap.domain ?? 'general',
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
catch (err) {
|
|
280
|
+
this.log.warn(`[concept-abstraction] Error gathering anti-patterns: ${err.message}`);
|
|
281
|
+
}
|
|
282
|
+
if (this.sources.getHypotheses) {
|
|
283
|
+
try {
|
|
284
|
+
const hypotheses = this.sources.getHypotheses('confirmed', 500);
|
|
285
|
+
for (const h of hypotheses) {
|
|
286
|
+
items.push({
|
|
287
|
+
type: 'hypothesis',
|
|
288
|
+
id: typeof h.id === 'string' ? parseInt(h.id, 10) || 0 : (h.id ?? 0),
|
|
289
|
+
text: h.statement,
|
|
290
|
+
confidence: h.confidence ?? 0.5,
|
|
291
|
+
domain: h.domain ?? 'general',
|
|
292
|
+
});
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
catch (err) {
|
|
296
|
+
this.log.warn(`[concept-abstraction] Error gathering hypotheses: ${err.message}`);
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
return items;
|
|
300
|
+
}
|
|
301
|
+
// ── Private: Clustering ───────────────────────────────
|
|
302
|
+
/** Greedy agglomerative clustering via bigram Dice similarity. */
|
|
303
|
+
clusterItems(items, threshold) {
|
|
304
|
+
const assigned = new Set();
|
|
305
|
+
const clusters = [];
|
|
306
|
+
// Sort by confidence descending — best items become centroids
|
|
307
|
+
const sorted = [...items].sort((a, b) => b.confidence - a.confidence);
|
|
308
|
+
for (let i = 0; i < sorted.length; i++) {
|
|
309
|
+
if (assigned.has(i))
|
|
310
|
+
continue;
|
|
311
|
+
const centroid = sorted[i];
|
|
312
|
+
const cluster = [centroid];
|
|
313
|
+
assigned.add(i);
|
|
314
|
+
for (let j = i + 1; j < sorted.length; j++) {
|
|
315
|
+
if (assigned.has(j))
|
|
316
|
+
continue;
|
|
317
|
+
const sim = this.textOverlap(centroid.text, sorted[j].text);
|
|
318
|
+
if (sim >= threshold) {
|
|
319
|
+
cluster.push(sorted[j]);
|
|
320
|
+
assigned.add(j);
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
if (cluster.length >= this.config.minClusterSize) {
|
|
324
|
+
clusters.push({ items: cluster, centroid });
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
return clusters;
|
|
328
|
+
}
|
|
329
|
+
/** Persist clusters as AbstractConcepts with members. Returns array of concept IDs. */
|
|
330
|
+
persistClusters(clusters, level, _parentId) {
|
|
331
|
+
const ids = [];
|
|
332
|
+
for (const cluster of clusters) {
|
|
333
|
+
const title = this.generateTitle(cluster);
|
|
334
|
+
const description = this.generateDescription(cluster);
|
|
335
|
+
const keywords = this.extractKeywords(cluster);
|
|
336
|
+
const avgConfidence = cluster.items.reduce((s, it) => s + it.confidence, 0) / cluster.items.length;
|
|
337
|
+
const avgSim = this.avgClusterSimilarity(cluster);
|
|
338
|
+
const transferability = this.computeTransferability(cluster);
|
|
339
|
+
const domain = this.computeDomain(cluster);
|
|
340
|
+
const result = this.insertConcept.run(title, description, level, null, // parent_id set later
|
|
341
|
+
domain, cluster.items.length, avgConfidence, avgSim, JSON.stringify(keywords), transferability);
|
|
342
|
+
const conceptId = Number(result.lastInsertRowid);
|
|
343
|
+
ids.push(conceptId);
|
|
344
|
+
// Insert members
|
|
345
|
+
for (const item of cluster.items) {
|
|
346
|
+
const sim = this.textOverlap(cluster.centroid.text, item.text);
|
|
347
|
+
this.insertMember.run(conceptId, item.type, item.id, sim);
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
return ids;
|
|
351
|
+
}
|
|
352
|
+
/** Convert persisted concepts to KnowledgeItems for re-clustering. */
|
|
353
|
+
conceptsToItems(conceptIds) {
|
|
354
|
+
return conceptIds.map(id => {
|
|
355
|
+
const row = this.getConceptById.get(id);
|
|
356
|
+
if (!row)
|
|
357
|
+
return null;
|
|
358
|
+
return {
|
|
359
|
+
type: 'concept',
|
|
360
|
+
id: row.id,
|
|
361
|
+
text: `${row.title}: ${row.description}`,
|
|
362
|
+
confidence: row.avg_confidence,
|
|
363
|
+
domain: row.domain,
|
|
364
|
+
};
|
|
365
|
+
}).filter((x) => x !== null);
|
|
366
|
+
}
|
|
367
|
+
findConceptByTitle(text, level) {
|
|
368
|
+
const concepts = this.getConceptsByLevelStmt.all(level);
|
|
369
|
+
// Find best match by title overlap
|
|
370
|
+
let bestId = null;
|
|
371
|
+
let bestSim = 0;
|
|
372
|
+
for (const c of concepts) {
|
|
373
|
+
const candidateText = `${c.title}: ${c.description}`;
|
|
374
|
+
const sim = this.textOverlap(text, candidateText);
|
|
375
|
+
if (sim > bestSim) {
|
|
376
|
+
bestSim = sim;
|
|
377
|
+
bestId = c.id;
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
return bestSim > 0.15 ? bestId : null;
|
|
381
|
+
}
|
|
382
|
+
// ── Private: Text analysis ────────────────────────────
|
|
383
|
+
/** Bigram Dice coefficient — same algorithm as MemoryPalace and DreamConsolidator. */
|
|
384
|
+
textOverlap(a, b) {
|
|
385
|
+
const aBigrams = this.bigrams(a.toLowerCase());
|
|
386
|
+
const bBigrams = this.bigrams(b.toLowerCase());
|
|
387
|
+
if (aBigrams.size === 0 || bBigrams.size === 0)
|
|
388
|
+
return 0;
|
|
389
|
+
let intersection = 0;
|
|
390
|
+
for (const bg of aBigrams) {
|
|
391
|
+
if (bBigrams.has(bg))
|
|
392
|
+
intersection++;
|
|
393
|
+
}
|
|
394
|
+
return (2 * intersection) / (aBigrams.size + bBigrams.size);
|
|
395
|
+
}
|
|
396
|
+
bigrams(text) {
|
|
397
|
+
const words = text.split(/\s+/).filter(w => w.length > 2);
|
|
398
|
+
const result = new Set();
|
|
399
|
+
for (const word of words) {
|
|
400
|
+
for (let i = 0; i < word.length - 1; i++) {
|
|
401
|
+
result.add(word.substring(i, i + 2));
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
return result;
|
|
405
|
+
}
|
|
406
|
+
generateTitle(cluster) {
|
|
407
|
+
const keywords = this.extractKeywords(cluster);
|
|
408
|
+
if (keywords.length >= 2)
|
|
409
|
+
return keywords.slice(0, 3).join(' + ');
|
|
410
|
+
// Fallback: use centroid's first few meaningful words
|
|
411
|
+
const words = cluster.centroid.text.split(/\s+/).filter(w => w.length > 3).slice(0, 4);
|
|
412
|
+
return words.join(' ') || 'Abstract Concept';
|
|
413
|
+
}
|
|
414
|
+
generateDescription(cluster) {
|
|
415
|
+
const types = new Set(cluster.items.map(i => i.type));
|
|
416
|
+
const typeStr = [...types].join(', ');
|
|
417
|
+
return `Abstraction of ${cluster.items.length} knowledge items (${typeStr}) centered around: ${cluster.centroid.text.substring(0, 120)}`;
|
|
418
|
+
}
|
|
419
|
+
extractKeywords(cluster) {
|
|
420
|
+
const wordCounts = new Map();
|
|
421
|
+
const stopwords = new Set([
|
|
422
|
+
'the', 'and', 'for', 'that', 'this', 'with', 'from', 'are', 'not', 'was', 'but', 'has', 'have', 'had',
|
|
423
|
+
'been', 'will', 'can', 'may', 'should', 'could', 'would', 'more', 'than', 'also', 'its', 'into',
|
|
424
|
+
'when', 'where', 'which', 'their', 'them', 'then', 'there', 'these', 'those', 'being', 'each',
|
|
425
|
+
'der', 'die', 'das', 'und', 'ist', 'ein', 'eine', 'den', 'dem', 'des', 'sich', 'mit', 'auf',
|
|
426
|
+
'von', 'als', 'für', 'nicht', 'auch', 'nur', 'noch', 'oder', 'aber', 'nach', 'wie', 'bei',
|
|
427
|
+
]);
|
|
428
|
+
for (const item of cluster.items) {
|
|
429
|
+
const words = item.text.toLowerCase().split(/\s+/).filter(w => w.length > 3 && !stopwords.has(w));
|
|
430
|
+
const unique = new Set(words);
|
|
431
|
+
for (const w of unique) {
|
|
432
|
+
wordCounts.set(w, (wordCounts.get(w) ?? 0) + 1);
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
const minOccurrence = Math.ceil(cluster.items.length * this.config.keywordMinRatio);
|
|
436
|
+
return [...wordCounts.entries()]
|
|
437
|
+
.filter(([, count]) => count >= minOccurrence)
|
|
438
|
+
.sort((a, b) => b[1] - a[1])
|
|
439
|
+
.slice(0, 8)
|
|
440
|
+
.map(([word]) => word);
|
|
441
|
+
}
|
|
442
|
+
avgClusterSimilarity(cluster) {
|
|
443
|
+
if (cluster.items.length <= 1)
|
|
444
|
+
return 1;
|
|
445
|
+
let total = 0;
|
|
446
|
+
let count = 0;
|
|
447
|
+
for (const item of cluster.items) {
|
|
448
|
+
if (item !== cluster.centroid) {
|
|
449
|
+
total += this.textOverlap(cluster.centroid.text, item.text);
|
|
450
|
+
count++;
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
return count > 0 ? total / count : 0;
|
|
454
|
+
}
|
|
455
|
+
computeTransferability(cluster) {
|
|
456
|
+
const domains = new Set(cluster.items.map(i => i.domain));
|
|
457
|
+
if (domains.size <= 1)
|
|
458
|
+
return 0;
|
|
459
|
+
// Cross-domain items / total
|
|
460
|
+
const mainDomain = this.mostCommon(cluster.items.map(i => i.domain));
|
|
461
|
+
const crossDomain = cluster.items.filter(i => i.domain !== mainDomain).length;
|
|
462
|
+
return crossDomain / cluster.items.length;
|
|
463
|
+
}
|
|
464
|
+
computeDomain(cluster) {
|
|
465
|
+
const domains = cluster.items.map(i => i.domain);
|
|
466
|
+
const unique = new Set(domains);
|
|
467
|
+
if (unique.size > 1)
|
|
468
|
+
return 'cross-domain';
|
|
469
|
+
return domains[0] ?? 'general';
|
|
470
|
+
}
|
|
471
|
+
mostCommon(arr) {
|
|
472
|
+
const counts = new Map();
|
|
473
|
+
for (const item of arr)
|
|
474
|
+
counts.set(item, (counts.get(item) ?? 0) + 1);
|
|
475
|
+
let best = arr[0] ?? 'general';
|
|
476
|
+
let bestCount = 0;
|
|
477
|
+
for (const [key, count] of counts) {
|
|
478
|
+
if (count > bestCount) {
|
|
479
|
+
best = key;
|
|
480
|
+
bestCount = count;
|
|
481
|
+
}
|
|
482
|
+
}
|
|
483
|
+
return best;
|
|
484
|
+
}
|
|
485
|
+
// ── Private: Helpers ──────────────────────────────────
|
|
486
|
+
getTotalCount() {
|
|
487
|
+
return this.countConceptsStmt.get().count;
|
|
488
|
+
}
|
|
489
|
+
getLevelCounts() {
|
|
490
|
+
const rows = this.countByLevelStmt.all();
|
|
491
|
+
const result = {};
|
|
492
|
+
for (const row of rows)
|
|
493
|
+
result[row.level] = row.count;
|
|
494
|
+
return result;
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
function toAbstractConcept(row) {
|
|
498
|
+
return {
|
|
499
|
+
id: row.id,
|
|
500
|
+
title: row.title,
|
|
501
|
+
description: row.description,
|
|
502
|
+
level: row.level,
|
|
503
|
+
parentId: row.parent_id,
|
|
504
|
+
domain: row.domain,
|
|
505
|
+
memberCount: row.member_count,
|
|
506
|
+
avgConfidence: row.avg_confidence,
|
|
507
|
+
avgSimilarity: row.avg_similarity,
|
|
508
|
+
keywords: JSON.parse(row.keywords),
|
|
509
|
+
transferability: row.transferability,
|
|
510
|
+
createdAt: row.created_at,
|
|
511
|
+
updatedAt: row.updated_at,
|
|
512
|
+
};
|
|
513
|
+
}
|
|
514
|
+
function toConceptMember(row) {
|
|
515
|
+
return {
|
|
516
|
+
conceptId: row.concept_id,
|
|
517
|
+
memberType: row.member_type,
|
|
518
|
+
memberId: row.member_id,
|
|
519
|
+
similarityToCentroid: row.similarity_to_centroid,
|
|
520
|
+
};
|
|
521
|
+
}
|
|
522
|
+
function toHistoryEntry(row) {
|
|
523
|
+
return {
|
|
524
|
+
cycle: row.cycle,
|
|
525
|
+
totalConcepts: row.total_concepts,
|
|
526
|
+
conceptsByLevel: JSON.parse(row.concepts_by_level),
|
|
527
|
+
newCount: row.new_count,
|
|
528
|
+
mergedCount: row.merged_count,
|
|
529
|
+
avgTransferability: row.avg_transferability,
|
|
530
|
+
};
|
|
531
|
+
}
|
|
532
|
+
//# sourceMappingURL=concept-abstraction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"concept-abstraction.js","sourceRoot":"","sources":["../../src/concept-abstraction/concept-abstraction.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { ConceptAbstraction, runConceptAbstractionMigration } from './concept-abstraction.js';
|
|
2
|
+
export type { ConceptAbstractionConfig, ConceptDataSources, AbstractConcept, ConceptMember, MemberType, ConceptHistoryEntry, ConceptHierarchy, ConceptStatus, } from './concept-abstraction.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/concept-abstraction/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -155,6 +155,8 @@ export { SelfScanner, runSelfScannerMigration } from './self-scanner/index.js';
|
|
|
155
155
|
export type { SelfScannerConfig, SourceFile, CodeEntity, EntityType, EntityFilter, ModuleMapEntry, SelfScanResult, SelfScannerStatus, } from './self-scanner/index.js';
|
|
156
156
|
export { SelfModificationEngine, runSelfModificationMigration } from './self-modification/index.js';
|
|
157
157
|
export type { SelfModificationConfig, ModificationStatus, FileDiff, SelfModification, SelfModificationStatus, } from './self-modification/index.js';
|
|
158
|
+
export { ConceptAbstraction, runConceptAbstractionMigration } from './concept-abstraction/index.js';
|
|
159
|
+
export type { ConceptAbstractionConfig, ConceptDataSources, AbstractConcept, ConceptMember, MemberType, ConceptHistoryEntry, ConceptHierarchy, ConceptStatus, } from './concept-abstraction/index.js';
|
|
158
160
|
export { SignalScanner, runScannerMigration } from './scanner/index.js';
|
|
159
161
|
export { GitHubCollector } from './scanner/index.js';
|
|
160
162
|
export { HnCollector } from './scanner/index.js';
|
package/dist/index.js
CHANGED
|
@@ -138,6 +138,8 @@ export { UnifiedDashboardServer } from './unified/index.js';
|
|
|
138
138
|
export { SelfScanner, runSelfScannerMigration } from './self-scanner/index.js';
|
|
139
139
|
// ── Self-Modification ────────────────────────────────────
|
|
140
140
|
export { SelfModificationEngine, runSelfModificationMigration } from './self-modification/index.js';
|
|
141
|
+
// ── Concept Abstraction ─────────────────────────────────
|
|
142
|
+
export { ConceptAbstraction, runConceptAbstractionMigration } from './concept-abstraction/index.js';
|
|
141
143
|
// ── Scanner ──────────────────────────────────────────────
|
|
142
144
|
export { SignalScanner, runScannerMigration } from './scanner/index.js';
|
|
143
145
|
export { GitHubCollector } from './scanner/index.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,8 +7,8 @@ export interface MemoryPalaceConfig {
|
|
|
7
7
|
/** Minimum strength for auto-detected connections. Default: 0.3 */
|
|
8
8
|
minAutoStrength?: number;
|
|
9
9
|
}
|
|
10
|
-
export type NodeType = 'principle' | 'anti_pattern' | 'strategy' | 'hypothesis' | 'experiment' | 'journal' | 'anomaly' | 'causal_edge' | 'emergence' | 'prediction' | 'curiosity_gap';
|
|
11
|
-
export type RelationType = 'derived_from' | 'contradicts' | 'supports' | 'caused_by' | 'tested_by' | 'related_to' | 'supersedes' | 'references';
|
|
10
|
+
export type NodeType = 'principle' | 'anti_pattern' | 'strategy' | 'hypothesis' | 'experiment' | 'journal' | 'anomaly' | 'causal_edge' | 'emergence' | 'prediction' | 'curiosity_gap' | 'concept';
|
|
11
|
+
export type RelationType = 'derived_from' | 'contradicts' | 'supports' | 'caused_by' | 'tested_by' | 'related_to' | 'supersedes' | 'references' | 'abstracted_from' | 'generalizes';
|
|
12
12
|
export interface KnowledgeConnection {
|
|
13
13
|
id?: number;
|
|
14
14
|
sourceType: NodeType;
|