Backplane.AgentRuntime.ToolCatalog (backplane_agent_runtime v1.10.2)

Copy Markdown

Validates complete, host-authored tool catalog revisions for a Conversation.

Catalog revisions are independent of descriptor revisions. Registry backends, authority, and backend contexts remain ephemeral; provider definitions use the canonical %{name:, description:, parameters:} shape.

Summary

Types

admission()

@type admission() :: %{
  registry: Backplane.AgentRuntime.ToolRegistry.t(),
  tools: [provider_tool()],
  authority: map(),
  accepted: [String.t()],
  rejected: [map()]
}

provider_tool()

@type provider_tool() :: %{
  name: String.t(),
  description: String.t(),
  parameters: map()
}

Functions

admit_batch(batch, opts \\ [])

@spec admit_batch(term(), keyword()) ::
  {:ok, admission()} | {:error, Backplane.AgentRuntime.Error.t()}

Admits a complete tool batch without mutating a registry or dispatching a backend.

Admission is strict by default. mode: :quarantine is the only mode that turns a direct InputSchema.validate_schema/1 :unsupported_capability result into a rejected diagnostic. Every other error remains fatal.

admit_batch(registry, authority, opts)

@spec admit_batch(Backplane.AgentRuntime.ToolRegistry.t(), map(), keyword()) ::
  {:ok, admission()} | {:error, Backplane.AgentRuntime.Error.t()}

fence(update, run)

@spec fence(term(), map()) :: :ok | {:error, Backplane.AgentRuntime.Error.t()}

initial(opts)

@spec initial(keyword()) :: map()

receipt(catalog, status)

@spec receipt(map(), :staged | :published) :: map()

validate(update, current_revision, run)

@spec validate(term(), pos_integer(), map()) ::
  {:ok, map()} | {:error, Backplane.AgentRuntime.Error.t()}