ToolCall.Emit (ToolCall v0.1.0)

Copy Markdown

Dispatches IR to a provider-specific schema.

The IR is intentionally provider-neutral: docs/design.md lists the subset each provider actually accepts.

precompile/1 renders the closed set of provider variants at compile time so that a module carries finished schemas as literals; emit/3 renders loose IR values on demand. Runtime IR is validated before rendering.

Summary

Types

target()

@type target() :: :openai | :anthropic

Functions

emit(tools_or_tool, target, opts \\ [])

@spec emit([ToolCall.IR.Tool.t()] | ToolCall.IR.Tool.t(), target(), keyword()) ::
  [map()] | map()