# ToolCall v0.1.0 - API Reference

## Modules

- [ToolCall](ToolCall.md): Derive LLM tool-call schemas from `@spec` and `@doc`.
- [ToolCall.Coerce](ToolCall.Coerce.md): Runtime normalisation of decoded JSON arguments into the value domains that
typespecs promise.
- [ToolCall.Doc](ToolCall.Doc.md): Extracts tool descriptions from `@doc` strings.
- [ToolCall.Emit](ToolCall.Emit.md): Dispatches IR to a provider-specific schema.
- [ToolCall.Emit.Anthropic](ToolCall.Emit.Anthropic.md): Anthropic tool definition (`name` / `description` / `input_schema`).
- [ToolCall.Emit.OpenAI](ToolCall.Emit.OpenAI.md): OpenAI function-calling schema.
- [ToolCall.Emit.Schema](ToolCall.Emit.Schema.md): JSON Schema rendering shared by the provider emitters.
- [ToolCall.IR](ToolCall.IR.md): Intermediate representation between Elixir typespecs and wire schemas.
- [ToolCall.IR.Field](ToolCall.IR.Field.md): One entry of an object-shaped type.
- [ToolCall.IR.Param](ToolCall.IR.Param.md): One positional parameter of a tool function.
- [ToolCall.IR.Tool](ToolCall.IR.Tool.md): A compiled tool, as embedded into the defining module.
- [ToolCall.IR.Type](ToolCall.IR.Type.md): A node in the value-domain tree.
- [ToolCall.Runner](ToolCall.Runner.md): Validates and dispatches a decoded argument map to the tool function.
- [ToolCall.TypeProvider](ToolCall.TypeProvider.md): Resolves custom remote typespecs for `use ToolCall, types: [...]`.
- [ToolCall.Typespec](ToolCall.Typespec.md): Converts a quoted typespec AST (aliases already expanded) into `ToolCall.IR.Type`.

## Mix Tasks

- [mix tool_call.clean](Mix.Tasks.ToolCall.Clean.md): Removes orphaned typedoc companion beams.
- [mix tool_call.export](Mix.Tasks.ToolCall.Export.md): Exports the schemas derived by `use ToolCall` as JSON.

