Skip to main content

lib/pi/protocol/skill_info.ex

defmodule Pi.Protocol.SkillInfo do
  @moduledoc "Executable skill shown in bridge startup info."

  use JSONCodec, fast_path: :json

  alias Pi.Protocol.API.Extension

  defstruct [:name, :path, :module, metadata: %{}, markdown: "", apis: []]

  @type t :: %__MODULE__{
          name: String.t() | nil,
          path: String.t() | nil,
          module: module() | nil,
          metadata: map(),
          markdown: String.t(),
          apis: [Extension.t()]
        }

  codec(:module, atom: :unsafe)
end