defmodule Planck.AI.Context do @moduledoc """ Everything sent to the LLM in a single request: system prompt, conversation history, and available tools. Inference parameters (temperature, max_tokens, etc.) are NOT stored here — they are passed as keyword options at the `Planck.AI.stream/3` or `Planck.AI.complete/3` call site and forwarded directly to `req_llm`. ## Examples iex> %Planck.AI.Context{ ...> system: "You are a helpful coding assistant.", ...> messages: [ ...> %Planck.AI.Message{role: :user, content: [{:text, "Hello"}]} ...> ], ...> tools: [] ...> } """ @type t :: %__MODULE__{ system: String.t() | nil, messages: [Planck.AI.Message.t()], tools: [Planck.AI.Tool.t()] } defstruct system: nil, messages: [], tools: [] end