Skip to content

Commit edfe769

Browse files
committed
feat: Bridge DreamService to knowledge-base GraphService via SDK (#9651)
1 parent fbc1814 commit edfe769

2 files changed

Lines changed: 29 additions & 5 deletions

File tree

ai/mcp/server/memory-core/services/DreamService.mjs

Lines changed: 27 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
import Base from '../../../../../src/core/Base.mjs';
22
import Json from '../../../../../src/util/Json.mjs';
3-
import aiConfig from '../config.mjs';
4-
import ChromaManager from './ChromaManager.mjs';
5-
import logger from '../logger.mjs';
6-
import Ollama from '../../../../provider/Ollama.mjs';
3+
import aiConfig from '../config.mjs';
4+
import ChromaManager from './ChromaManager.mjs';
5+
import KB_GraphService from '../../../knowledge-base/services/GraphService.mjs';
6+
import logger from '../logger.mjs';
7+
import Ollama from '../../../../provider/Ollama.mjs';
78

89
/**
910
* @summary Service for offline GraphRAG extraction ("REM Sleep").
@@ -179,7 +180,28 @@ ${session.document}
179180

180181
logger.info(`[DreamService] Successfully extracted ${payload.nodes.length} nodes and ${payload.edges.length} edges for session ${session.meta.sessionId}.`);
181182

182-
// Sub-Epic 3C will handle transmitting this payload to the knowledge-base server
183+
// Sub-Epic 3C: Bridge to knowledge-base GraphService (SQLite)
184+
for (const node of payload.nodes) {
185+
KB_GraphService.upsertNode({
186+
id: node.id,
187+
type: node.type || 'Unknown',
188+
name: node.name || 'Unknown',
189+
description: node.description || '',
190+
semanticVectorId: null // Can be populated later by vector syncing logic
191+
});
192+
}
193+
194+
for (const edge of payload.edges) {
195+
KB_GraphService.linkNodes(
196+
edge.source,
197+
edge.target,
198+
edge.relationship || 'RELATED_TO',
199+
edge.weight !== undefined ? parseFloat(edge.weight) : 1.0
200+
);
201+
}
202+
203+
logger.info(`[DreamService] Graph entities committed to Neocortex for session ${session.meta.sessionId}.`);
204+
183205
return payload;
184206

185207
} catch (error) {

ai/services.mjs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import KB_HealthService from './mcp/server/knowledge-base/services/H
2828
import KB_QueryService from './mcp/server/knowledge-base/services/QueryService.mjs';
2929
import KB_SearchService from './mcp/server/knowledge-base/services/SearchService.mjs';
3030
import KB_ChromaManager from './mcp/server/knowledge-base/services/ChromaManager.mjs';
31+
import KB_GraphService from './mcp/server/knowledge-base/services/GraphService.mjs';
3132
import KB_Config from './mcp/server/knowledge-base/config.mjs';
3233

3334
// Disable auto-sync for all scripts using the SDK to prevent double-runs
@@ -224,6 +225,7 @@ export {
224225
KB_DatabaseService,
225226
KB_LifecycleService,
226227
KB_DocumentService,
228+
KB_GraphService,
227229
KB_HealthService,
228230
KB_QueryService,
229231
KB_SearchService,

0 commit comments

Comments
 (0)