v3/docs/adr/ADR-087-graph-node-native-backend.md
The codebase has @ruvector/[email protected] installed (native Rust bindings, 10x faster than WASM) but 0 references in source code. Meanwhile, causal edges and agent relationships are stored only in the AgentDB bridge with no graph-native operations like k-hop neighbor queries or hyperedge support.
| Package | Status | Result |
|---|---|---|
@ruvector/graph-node | Works | createNode, createEdge, createHyperedge, kHopNeighbors, stats — all functional |
@ruvector/gnn | Broken | All NAPI functions fail with type conversion errors |
@ruvector/rvf | Broken | Backend resolution fails, no native bindings found |
createNode({ id, type, embedding }) — embedding required (Float32Array)createEdge({ from, to, label, description, embedding, properties }) — all fields requiredcreateHyperedge({ nodes[], label, description, embedding, properties }) — all fields requiredkHopNeighbors(nodeId, k) — returns string[] of neighbor node IDsstats() — returns { totalNodes, totalEdges, avgDegree }GraphDatabase(path?) — optional path for persistenceWire @ruvector/graph-node as the native graph backend for agent relationships, causal edges, task dependencies, and swarm topology.
src/ruvector/graph-backend.tsProvides a clean wrapper over the raw graph-node API:
isGraphBackendAvailable() — check if native backend loadedaddNode(data) — add agent/task/pattern nodeaddEdge(data) — add relationship edgeaddHyperedge(nodeIds, label) — create multi-node relationshipgetNeighbors(nodeId, hops) — k-hop neighbor querygetGraphStats() — node/edge/degree statisticsrecordCausalEdge(src, tgt, relation) — causal edge recordingrecordCollaboration(agentId, agentType, taskId) — agent-task assignmentrecordSwarmTeam(agentIds, topology) — swarm team hyperedgeAuto-generates minimal embeddings (8-dim hash) for graph structure operations.
src/ruvector/graph-backend.ts (new) — Native graph database wrappersrc/mcp-tools/agentdb-tools.ts — agentdb_causal-edge tries graph-node first, falls back to bridgesrc/mcp-tools/agent-tools.ts — agent_spawn records agent node in graphsrc/mcp-tools/hooks-tools.ts — hooks_intelligence adds graphDatabase component statussrc/mcp-tools/hooks-tools.ts — hooks_intelligence_stats adds graph stats to ruvllm sectionsrc/mcp-tools/hooks-tools.ts — implementationStatus.working includes graph-databasesrc/mcp-tools/ruvllm-tools.ts — ruvllm_status includes graph backend statussrc/commands/neural.ts — neural status shows Graph Database row in status tableneural status, hooks_intelligence, ruvllm_status/tmp/rv-graph-persist.db) reports null (graph-node quirk), but data persistsembedding on all operations — mitigated by auto-generated mini-embeddingscreateRequire bridge pattern__tests__/graph-backend.test.ts — 9 tests covering exports, graceful degradation, CJS pattern