CliSubprocessCore.Tool.Descriptor (CliSubprocessCore v0.2.0)

Copy Markdown View Source

Serializable description of a tool contract.

Summary

Types

t()

@type t() :: %CliSubprocessCore.Tool.Descriptor{
  description: String.t() | nil,
  extra: map(),
  input_schema: CliSubprocessCore.Tool.json_value(),
  name: String.t(),
  output_schema: CliSubprocessCore.Tool.json_value() | nil,
  provider_metadata: %{
    optional(String.t()) => CliSubprocessCore.Tool.json_value()
  }
}

Functions

new(attrs \\ [])

@spec new(keyword() | map() | t()) :: t()

parse(descriptor)

@spec parse(keyword() | map() | t()) ::
  {:ok, t()}
  | {:error,
     {:invalid_tool, module(), [CliSubprocessCore.Tool.validation_error()]}}

parse!(attrs)

@spec parse!(keyword() | map() | t()) :: t()

to_map(descriptor)

@spec to_map(t()) :: map()