Skip to main content

lib/beam_weaver/provider/tool_renderer.ex

defmodule BeamWeaver.Provider.ToolRenderer do
  @moduledoc """
  Behaviour for rendering BeamWeaver tools into provider-native declarations.
  """

  alias BeamWeaver.Core.Error

  @callback render_tools([term()], keyword()) :: {:ok, [map()]} | {:error, Error.t()}
  @callback render_tool_choice(term(), [term()], keyword()) :: {:ok, term()} | {:error, Error.t()}

  @optional_callbacks render_tool_choice: 3
end