Jido.Action.Catalog.Entry (Jido Action v2.3.0)

View Source

Normalized metadata for one local action-compatible module in an action catalog.

Entries are plain values. They are intended for inspection, filtering, search, documentation, and later projection into higher-level runtimes.

A module is action-compatible when it is available locally and exports name/0, schema/0, and run/2. Catalogs do not support remote entries whose implementation is not loaded in the current runtime.

Summary

Functions

Builds a catalog entry from a local action-compatible module.

Builds a catalog entry from raw attributes.

Same as new/1, but raises on error.

Returns the Zoi schema used to validate catalog entries.

Types

t()

@type t() :: %Jido.Action.Catalog.Entry{
  capabilities: [binary()],
  category: nil | binary(),
  description: binary(),
  examples: [map()],
  id: binary(),
  input_schema: nil | any(),
  keywords: [binary()],
  metadata: map(),
  module: atom(),
  name: binary(),
  namespace: nil | binary(),
  output_schema: nil | any(),
  package: nil | binary(),
  read_only?: boolean(),
  requires_confirmation?: boolean(),
  risk: :low | :medium | :high,
  schema_kind: :empty | :nimble | :zoi | :json_schema | :unknown,
  scopes: [binary()],
  source: :module | :runtime,
  summary: nil | binary(),
  tags: [binary()],
  timeout: nil | integer(),
  title: nil | binary(),
  version: nil | binary(),
  visibility: :public | :internal | :hidden
}

Functions

from_module(module, overrides \\ [])

@spec from_module(module(), map() | keyword()) :: {:ok, t()} | {:error, Exception.t()}

Builds a catalog entry from a local action-compatible module.

Optional attributes override the module-derived metadata.

from_module!(module, overrides \\ [])

@spec from_module!(module(), map() | keyword()) :: t() | no_return()

Same as from_module/2, but raises on error.

new(attrs)

@spec new(map() | keyword()) :: {:ok, t()} | {:error, Exception.t()}

Builds a catalog entry from raw attributes.

new!(attrs)

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

Same as new/1, but raises on error.

schema()

@spec schema() :: term()

Returns the Zoi schema used to validate catalog entries.