Shared client pool that manages one Anubis client per configured endpoint.
Summary
Functions
Returns a specification to start this module under a supervisor.
Types
@type client_ref() :: %{ client: GenServer.name(), supervisor: GenServer.name(), transport: GenServer.name() }
Functions
@spec await_ready(client_ref(), timeout()) :: :ok | {:error, term()}
Returns a specification to start this module under a supervisor.
See Supervisor.
@spec endpoint_ids() :: [atom()]
@spec endpoints() :: Jido.MCP.Config.endpoints()
@spec ensure_client(atom()) :: {:ok, Jido.MCP.Endpoint.t(), client_ref()} | {:error, term()}
@spec fetch_endpoint(atom()) :: {:ok, Jido.MCP.Endpoint.t()} | {:error, :unknown_endpoint}
@spec refresh(atom()) :: {:ok, Jido.MCP.Endpoint.t(), client_ref()} | {:error, term()}
@spec register_endpoint(Jido.MCP.Endpoint.t()) :: {:ok, Jido.MCP.Endpoint.t()} | {:error, {:endpoint_already_registered, atom()} | {:invalid_endpoint, term()}}
@spec start_link(keyword()) :: GenServer.on_start()
@spec unregister_endpoint(atom()) :: {:ok, Jido.MCP.Endpoint.t()} | {:error, :unknown_endpoint}