defmodule Anthropic do @moduledoc """ Public API for the Anthropic Messages client. Accepts a keyword config list, builds a `%Anthropic.Client{}`, and delegates to its streaming function. This module is the entry point for callers that have config as data (e.g. from application env). """ alias Anthropic.Client @doc """ Streams a chat completion from the Anthropic Messages API. `config` is a keyword list passed to `Anthropic.Client.new/1`. `messages` is the conversation history. `opts` are request options (`:model`, `:max_tokens`, `:system`, `:tools`, etc.). """ @spec stream(keyword(), list(map()), keyword()) :: {:ok, Enumerable.t()} | {:error, term()} def stream(config, messages, opts \\ []) do config |> Client.new() |> Client.stream(messages, opts) end end