MCPcopy Create free account
hub / github.com/astercloud/aster / GetDerivedMemories

Method GetDerivedMemories

pkg/memory/lineage.go:69–92  ·  view source on GitHub ↗

GetDerivedMemories 获取派生自指定记忆的所有记忆(递归)。

(memoryID string)

Source from the content-addressed store, hash-verified

67
68// GetDerivedMemories 获取派生自指定记忆的所有记忆(递归)。
69func (lg *LineageGraph) GetDerivedMemories(memoryID string) []string {
70 lg.mu.RLock()
71 defer lg.mu.RUnlock()
72
73 visited := make(map[string]bool)
74 var result []string
75
76 var traverse func(string)
77 traverse = func(id string) {
78 if visited[id] {
79 return
80 }
81 visited[id] = true
82
83 children := lg.parentToChildren[id]
84 for _, child := range children {
85 result = append(result, child)
86 traverse(child)
87 }
88 }
89
90 traverse(memoryID)
91 return result
92}
93
94// GetParentMemories 获取指定记忆的所有父记忆(递归)。
95func (lg *LineageGraph) GetParentMemories(memoryID string) []string {

Callers 2

Calls

no outgoing calls

Tested by 1