SquidMesh.Tools (squid_mesh v0.1.0-alpha.3)

Copy Markdown View Source

Public boundary for invoking external tools from workflow steps.

Tool adapters provide a stable integration layer for steps that need to talk to external systems without leaking transport-specific response or error shapes into workflow code.

Summary

Functions

Invokes a tool adapter through the shared contract.

Types

adapter()

@type adapter() :: module()

context()

@type context() :: map()

invoke_error()

@type invoke_error() ::
  {:invalid_request, :expected_map}
  | {:invalid_context, :expected_map}
  | {:invalid_adapter, module()}

request()

@type request() :: map()

Functions

invoke(adapter, request, context \\ %{}, opts \\ [])

@spec invoke(adapter(), request(), context(), keyword()) ::
  {:ok, SquidMesh.Tools.Result.t()} | {:error, SquidMesh.Tools.Error.t()}

Invokes a tool adapter through the shared contract.