# Interface SearchStrategy

All Known Implementing Classes:
  `AStarSearchStrategy, DfsSearchStrategy`

public interface SearchStrategy
Strategy for searching a dependency graph to find ordered agent execution groups.

Given a graph, agent metadata, available preconditions, and a goal output key, produces an ordered list of agent groups where agents within each group are independent and can run in parallel.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `com.google.common.collect.ImmutableList<com.google.common.collect.ImmutableList<String>>`
  `searchGrouped(GoalOrientedSearchGraph graph, List<AgentMetadata> metadata, Collection<String> preconditions, String goal)`
  Searches for agent execution groups that produce the goal.

- ## Method Details

  - ### searchGrouped

    com.google.common.collect.ImmutableList<com.google.common.collect.ImmutableList<String>> searchGrouped(GoalOrientedSearchGraph graph, List<AgentMetadata> metadata, Collection<String> preconditions, String goal)
    Searches for agent execution groups that produce the goal.
    Parameters:
      `graph` - the dependency graph
      `metadata` - agent metadata
      `preconditions` - state keys already available
      `goal` - the target output key
    Returns:
      ordered list of agent groups for parallel execution
    Throws:
      `IllegalStateException` - if the goal cannot be reached