# agentsea_crews v0.1.0 - Table of Contents

> AgentSea crews: multi-agent coordination with delegation strategies and a gen_statem task-DAG coordinator.

## Modules

- [AgentSea.Crew](AgentSea.Crew.md): A crew of agents that collaborate on a task DAG.
- [AgentSea.Crew.Coordinator](AgentSea.Crew.Coordinator.md): Drives a crew's task DAG, modeled as a `:gen_statem` whose states *are* the
crew lifecycle: `:idle → :running → :completed`, with `:paused` (pause/resume)
and `:aborted` branches.
- [AgentSea.Crew.Delegation](AgentSea.Crew.Delegation.md): Strategy behaviour for assigning a task to an agent. Each strategy is a module
implementing `c:delegate/3`; the coordinator selects one by config.

- [AgentSea.Crew.Delegation.Auction](AgentSea.Crew.Delegation.Auction.md): Agents bid on the task; the best bid wins.
- [AgentSea.Crew.Delegation.BestMatch](AgentSea.Crew.Delegation.BestMatch.md): Selects the agent whose role capabilities best fit the task. Prefers agents
that can fully execute the task, breaking ties by capability score. Pure — uses
the role on each `agent_ref`, no process calls.

- [AgentSea.Crew.Delegation.Result](AgentSea.Crew.Delegation.Result.md): The outcome of a delegation decision.
- [AgentSea.Crew.Delegation.RoundRobin](AgentSea.Crew.Delegation.RoundRobin.md): Cycles through agents by position. The position is supplied via `ctx.counter`
(the coordinator owns and advances it), keeping the strategy pure.

- [AgentSea.Crew.Spec](AgentSea.Crew.Spec.md): Declarative crew configuration.
- [AgentSea.Crew.Supervisor](AgentSea.Crew.Supervisor.md): Per-crew supervision subtree: a `Task.Supervisor` for delegated work, a
`DynamicSupervisor` for the crew's agents, and the coordinator. All three are
registered in `AgentSea.CrewRegistry` keyed by `{crew_name, key}`.

- [AgentSea.Crew.Task](AgentSea.Crew.Task.md): A unit of work for a crew, with optional capability requirements and dependencies.

