|
1 | 1 | import Base from '../../../../../src/core/Base.mjs'; |
2 | 2 | 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'; |
7 | 8 |
|
8 | 9 | /** |
9 | 10 | * @summary Service for offline GraphRAG extraction ("REM Sleep"). |
@@ -179,7 +180,28 @@ ${session.document} |
179 | 180 |
|
180 | 181 | logger.info(`[DreamService] Successfully extracted ${payload.nodes.length} nodes and ${payload.edges.length} edges for session ${session.meta.sessionId}.`); |
181 | 182 |
|
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 | + |
183 | 205 | return payload; |
184 | 206 |
|
185 | 207 | } catch (error) { |
|
0 commit comments