package knowledge import "strings" type ExpandStrategy string const ( ExpandStrategyBrave ExpandStrategy = "brave" ExpandStrategyLLM ExpandStrategy = "llm" ExpandStrategyHybrid ExpandStrategy = "hybrid" ) func ParseExpandStrategy(raw string) ExpandStrategy { switch strings.ToLower(strings.TrimSpace(raw)) { case string(ExpandStrategyLLM): return ExpandStrategyLLM case string(ExpandStrategyHybrid): return ExpandStrategyHybrid default: return ExpandStrategyBrave } } func (s ExpandStrategy) RequiresWebSearch() bool { return s == ExpandStrategyBrave || s == ExpandStrategyHybrid } func (s ExpandStrategy) RequiresBrave() bool { return s.RequiresWebSearch() } // UsesSupplementalBrave 廣度補充是否再打第二輪 Brave(hybrid 改由 LLM 補廣度以省 API)。 func (s ExpandStrategy) UsesSupplementalBrave() bool { return s == ExpandStrategyBrave } func (s ExpandStrategy) String() string { return string(s) }