# `Agentic.Protocol.Registry`

Registry for agent protocol implementations.

Provides lookup and discovery of available protocols, supporting
both LLM API protocols and local agent CLI protocols.

## Usage

    # Register a protocol
    Agentic.Protocol.Registry.register(:claude_code, Agentic.Protocol.ClaudeCode)

    # Look up a protocol
    {:ok, module} = Agentic.Protocol.Registry.lookup(:claude_code)

    # List all protocols
    Agentic.Protocol.Registry.list()

    # Get protocols by transport type
    Agentic.Protocol.Registry.for_transport(:local_agent)

# `available?`

Check if a protocol is available (CLI present, credentials configured, etc.)

# `child_spec`

Returns a specification to start this module under a supervisor.

See `Supervisor`.

# `for_transport`

List all protocols for a given transport type.

# `get!`

Get a protocol, raising if not found.

# `list`

List all registered protocol names.

# `lookup`

Look up a protocol by name.

Returns `{:ok, module}` or `:error`.

# `register`

Register a protocol under a name.

The protocol module must implement `AgentProtocol` behaviour.

# `start_link`

# `unregister`

Unregister a protocol by name.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
