@kybernesis/brain-core 0.13.0 → 0.14.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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brain-provider.d.ts","sourceRoot":"","sources":["../src/brain-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,aAAa,
|
|
1
|
+
{"version":3,"file":"brain-provider.d.ts","sourceRoot":"","sources":["../src/brain-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EAmBd,MAAM,6BAA6B,CAAC;AAoBrC;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,aAAa,GAAG,aAAa,CA+KxE"}
|
package/dist/brain-provider.js
CHANGED
|
@@ -18,7 +18,7 @@ import { EntityTypeSchema } from '@kybernesis/brain-contracts';
|
|
|
18
18
|
import { storeConversation } from './store-conversation.js';
|
|
19
19
|
import { hybridSearch } from './hybrid-search.js';
|
|
20
20
|
import { queryTimeline, getTimelineStats } from './timeline.js';
|
|
21
|
-
import { getEntityContext, findOrCreateEntity, getEntityGraphStats, pinEntity as pinEntityById, listPinned, } from './entity-graph.js';
|
|
21
|
+
import { getEntityContext, findOrCreateEntity, getEntityGraphStats, getMostMentionedEntities, getTypedRelationships, pinEntity as pinEntityById, listPinned, } from './entity-graph.js';
|
|
22
22
|
import { vectorStats } from './vectors.js';
|
|
23
23
|
import { factsCount } from './fact-store.js';
|
|
24
24
|
import { runSleepCycleNow } from './sleep/index.js';
|
|
@@ -121,6 +121,48 @@ export function createLocalBrainProvider(t) {
|
|
|
121
121
|
last_seen: e.last_seen,
|
|
122
122
|
}));
|
|
123
123
|
},
|
|
124
|
+
async graph(opts) {
|
|
125
|
+
const limit = opts?.limit ?? 50;
|
|
126
|
+
// Nodes: the most-mentioned (most-connected) entities — the graph anchors.
|
|
127
|
+
// Matches KAD's GET /brain/graph `ORDER BY mention_count DESC` ordering.
|
|
128
|
+
const nodes = await getMostMentionedEntities(t, { limit });
|
|
129
|
+
const nodeIds = new Set(nodes.map((n) => n.id));
|
|
130
|
+
// Edges: fan out getTypedRelationships per node, reconstruct a directed
|
|
131
|
+
// (source_id → target_id) edge from the relationship's `direction`, and
|
|
132
|
+
// keep only CLOSED edges (both endpoints are nodes) so the graph is always
|
|
133
|
+
// drawable. Querying both endpoints yields the same edge twice (outgoing
|
|
134
|
+
// from source, incoming to target) — dedupe on (source, target, rel).
|
|
135
|
+
const perNode = await Promise.all(nodes.map((n) => getTypedRelationships(t, n.id)));
|
|
136
|
+
const seen = new Set();
|
|
137
|
+
const edges = [];
|
|
138
|
+
nodes.forEach((node, i) => {
|
|
139
|
+
for (const rel of perNode[i]) {
|
|
140
|
+
const neighbourId = rel.entity.id;
|
|
141
|
+
if (!nodeIds.has(neighbourId))
|
|
142
|
+
continue; // keep the graph closed
|
|
143
|
+
const source_id = rel.direction === 'outgoing' ? node.id : neighbourId;
|
|
144
|
+
const target_id = rel.direction === 'outgoing' ? neighbourId : node.id;
|
|
145
|
+
const key = `${source_id}:${target_id}:${rel.relationship}`;
|
|
146
|
+
if (seen.has(key))
|
|
147
|
+
continue;
|
|
148
|
+
seen.add(key);
|
|
149
|
+
edges.push({
|
|
150
|
+
source_id,
|
|
151
|
+
target_id,
|
|
152
|
+
relationship: rel.relationship,
|
|
153
|
+
confidence: rel.confidence,
|
|
154
|
+
...(rel.rationale !== undefined ? { rationale: rel.rationale } : {}),
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
return { nodes, edges };
|
|
159
|
+
},
|
|
160
|
+
async listEntities(opts) {
|
|
161
|
+
return getMostMentionedEntities(t, {
|
|
162
|
+
limit: opts?.limit ?? 50,
|
|
163
|
+
...(opts?.type !== undefined ? { type: opts.type } : {}),
|
|
164
|
+
});
|
|
165
|
+
},
|
|
124
166
|
async stats() {
|
|
125
167
|
const [tl, eg, vec, facts] = await Promise.all([
|
|
126
168
|
getTimelineStats(t),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brain-provider.js","sourceRoot":"","sources":["../src/brain-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;
|
|
1
|
+
{"version":3,"file":"brain-provider.js","sourceRoot":"","sources":["../src/brain-provider.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kybernesis/brain-core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.14.0",
|
|
4
4
|
"description": "Kernel brain methods — timeline, entity-graph, facts, vectors, retrieval, sleep",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "David Cruwys (AppyDave)",
|
|
@@ -27,11 +27,11 @@
|
|
|
27
27
|
"README.md"
|
|
28
28
|
],
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@kybernesis/brain-contracts": "0.
|
|
31
|
-
"@kybernesis/brain-storage-sqlite": "0.
|
|
30
|
+
"@kybernesis/brain-contracts": "0.14.0",
|
|
31
|
+
"@kybernesis/brain-storage-sqlite": "0.14.0"
|
|
32
32
|
},
|
|
33
33
|
"peerDependencies": {
|
|
34
|
-
"@kybernesis/brain-storage-vec": "0.
|
|
34
|
+
"@kybernesis/brain-storage-vec": "0.14.0"
|
|
35
35
|
},
|
|
36
36
|
"peerDependenciesMeta": {
|
|
37
37
|
"@kybernesis/brain-storage-vec": {
|
|
@@ -41,8 +41,8 @@
|
|
|
41
41
|
"devDependencies": {
|
|
42
42
|
"@types/better-sqlite3": "^7.6.13",
|
|
43
43
|
"better-sqlite3": "^12.10.0",
|
|
44
|
-
"@kybernesis/brain-testkit": "0.
|
|
45
|
-
"@kybernesis/brain-storage-vec": "0.
|
|
44
|
+
"@kybernesis/brain-testkit": "0.14.0",
|
|
45
|
+
"@kybernesis/brain-storage-vec": "0.14.0"
|
|
46
46
|
},
|
|
47
47
|
"publishConfig": {
|
|
48
48
|
"access": "public"
|