diff --git a/packages/memory-graph/src/constants.ts b/packages/memory-graph/src/constants.ts
index 57b6e05b..f3c539ff 100644
--- a/packages/memory-graph/src/constants.ts
+++ b/packages/memory-graph/src/constants.ts
@@ -73,6 +73,7 @@ export const DEFAULT_COLORS: GraphThemeColors = {
textPrimary: "#ffffff",
textSecondary: "#e2e8f0",
textMuted: "#94a3b8",
+ edgeDocument: "#64748B",
edgeDerives: "#FBBF24",
edgeUpdates: "#9B8AE6",
edgeExtends: "#94A3B8",
diff --git a/packages/memory-graph/src/hooks/use-graph-data.ts b/packages/memory-graph/src/hooks/use-graph-data.ts
index e305b053..e0a3b1b3 100644
--- a/packages/memory-graph/src/hooks/use-graph-data.ts
+++ b/packages/memory-graph/src/hooks/use-graph-data.ts
@@ -56,6 +56,7 @@ export function getMemoryBorderColor(
export function getEdgeVisualProps(edgeType: string) {
switch (edgeType) {
+ case "document":
case "derives":
return { opacity: 0.4, thickness: 1.2 }
case "updates":
@@ -413,15 +414,14 @@ export function computeEdges(documents: GraphApiDocument[]): GraphEdge[] {
for (const mem of doc.memories) allNodeIds.add(mem.id)
}
- // 1. Derives edges: document -> memory (structural)
for (const doc of documents) {
for (const mem of doc.memories) {
result.push({
id: `dm-${doc.id}-${mem.id}`,
source: doc.id,
target: mem.id,
- visualProps: getEdgeVisualProps("derives"),
- edgeType: "derives",
+ visualProps: getEdgeVisualProps("document"),
+ edgeType: "document",
})
}
}
diff --git a/packages/memory-graph/src/hooks/use-graph-theme.ts b/packages/memory-graph/src/hooks/use-graph-theme.ts
index fc7ae913..e31ff7f0 100644
--- a/packages/memory-graph/src/hooks/use-graph-theme.ts
+++ b/packages/memory-graph/src/hooks/use-graph-theme.ts
@@ -33,6 +33,10 @@ function resolveColors(): GraphThemeColors {
DEFAULT_COLORS.textSecondary,
),
textMuted: readCssVar("--graph-text-muted", DEFAULT_COLORS.textMuted),
+ edgeDocument: readCssVar(
+ "--graph-edge-document",
+ readCssVar("--graph-text-muted", DEFAULT_COLORS.edgeDocument),
+ ),
edgeDerives: readCssVar("--graph-edge-derives", DEFAULT_COLORS.edgeDerives),
edgeUpdates: readCssVar("--graph-edge-updates", DEFAULT_COLORS.edgeUpdates),
edgeExtends: readCssVar("--graph-edge-extends", DEFAULT_COLORS.edgeExtends),
diff --git a/packages/memory-graph/src/index.tsx b/packages/memory-graph/src/index.tsx
index edeeb31c..f87baaba 100644
--- a/packages/memory-graph/src/index.tsx
+++ b/packages/memory-graph/src/index.tsx
@@ -29,6 +29,7 @@ export type {
ResolvedMemoryGraphLabels,
GraphNode,
GraphEdge,
+ GraphEdgeType,
GraphThemeColors,
GraphCanvasProps,
GraphApiDocument,
diff --git a/packages/memory-graph/src/types.ts b/packages/memory-graph/src/types.ts
index eb89347d..1c66419e 100644
--- a/packages/memory-graph/src/types.ts
+++ b/packages/memory-graph/src/types.ts
@@ -42,6 +42,8 @@ export interface GraphApiEdge {
edgeType: MemoryRelation
}
+export type GraphEdgeType = MemoryRelation | "document"
+
// Typed node data
export interface DocumentNodeData {
@@ -100,7 +102,7 @@ export interface GraphEdge {
opacity: number
thickness: number
}
- edgeType: MemoryRelation
+ edgeType: GraphEdgeType
}
export interface GraphThemeColors {
@@ -116,6 +118,7 @@ export interface GraphThemeColors {
textPrimary: string
textSecondary: string
textMuted: string
+ edgeDocument: string
edgeDerives: string
edgeUpdates: string
edgeExtends: string