Skip to main content

lib/pi/protocol/tool/ast/search.ex

defmodule Pi.Protocol.Tool.AST.Search do
  @moduledoc "Structured AST search tool payload."

  use JSONCodec, fast_path: :json

  alias Pi.Protocol.Tool.AST.Match

  defstruct kind: "ast_search", pattern: nil, path: nil, matches: [], total: 0, display: nil

  @type t :: %__MODULE__{
          kind: String.t(),
          pattern: String.t(),
          path: String.t() | nil,
          matches: [Match.t()],
          total: non_neg_integer(),
          display: Pi.Protocol.UI.Display.t() | nil
        }
end