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

Method RevokeDataSource

pkg/memory/lineage.go:221–241  ·  view source on GitHub ↗

RevokeDataSource 撤销数据源权限。 删除所有派生自该数据源的记忆。

(ctx context.Context, sourceID string)

Source from the content-addressed store, hash-verified

219// RevokeDataSource 撤销数据源权限。
220// 删除所有派生自该数据源的记忆。
221func (lm *LineageManager) RevokeDataSource(ctx context.Context, sourceID string) ([]string, error) {
222 // 找到所有来自该数据源的记忆
223 affectedMemories := lm.graph.GetMemoriesBySource(sourceID)
224
225 if len(affectedMemories) == 0 {
226 return nil, nil
227 }
228
229 // 删除这些记忆及其派生
230 var deletedIDs []string
231 for _, memID := range affectedMemories {
232 deleted, err := lm.DeleteMemoryWithLineage(ctx, memID, true)
233 if err != nil {
234 // TODO: handle error
235 return deletedIDs, fmt.Errorf("delete memory %s: %w", memID, err)
236 }
237 deletedIDs = append(deletedIDs, deleted...)
238 }
239
240 return deletedIDs, nil
241}
242
243// RegenerateFromSource 从剩余有效数据源重新生成记忆。
244// 这是一个更精确的删除策略,避免过度删除。

Callers 1

Calls 2

GetMemoriesBySourceMethod · 0.80

Tested by 1