defmodule Pi.Protocol.Tool.Eval do @moduledoc "Structured project eval tool payload." use JSONCodec, fast_path: :json alias Pi.Protocol.Tool.OutputPart alias Pi.Protocol.UI.Display defstruct kind: "eval", io: "", result: nil, error: nil, exception: nil, diagnostics: [], text: "", parts: [], display: nil, bindings: [], state: nil @type t :: %__MODULE__{ kind: String.t(), io: String.t(), result: String.t() | nil, error: String.t() | nil, exception: map() | nil, diagnostics: [map()], text: String.t(), parts: [OutputPart.t()], display: Display.t() | nil, bindings: [map()], state: map() | nil } end