2026-06-24 17:30:47 +00:00
|
|
|
package knowledge
|
|
|
|
|
|
|
|
|
|
// ResolveScanPatrolKeywords picks keywords for placement-scan in UI/API order:
|
|
|
|
|
// explicit request > saved research map > auto-ranked from map + graph nodes.
|
|
|
|
|
func ResolveScanPatrolKeywords(explicit, saved []string, input PatrolTagInput, nodes []Node) []string {
|
|
|
|
|
if keywords := NormalizePatrolKeywordList(explicit); len(keywords) > 0 {
|
|
|
|
|
return keywords
|
|
|
|
|
}
|
|
|
|
|
if keywords := NormalizePatrolKeywordList(saved); len(keywords) > 0 {
|
|
|
|
|
return keywords
|
|
|
|
|
}
|
|
|
|
|
return NormalizePatrolKeywordList(CollectPatrolTagsFromGraph(input, nodes))
|
2026-06-25 08:20:03 +00:00
|
|
|
}
|