lib/train/tool_spec.ex

defmodule Train.ToolSpec do
  @type t :: module()

  @doc """
  Async query the given tool and return the result or error.
  """
  @callback query(String.t()) :: {:ok, any} | {:error, any}

  @callback name() :: String.t()

  @callback description() :: String.t()
end