# `Mojentic.LLM.Tools.ToolInvocation`
[🔗](https://github.com/svetzal/mojentic-ex/blob/v1.5.0/lib/mojentic/llm/tools/tool_invocation.ex#L1)

Internal helper that invokes a single tool call against a resolved
tool, honouring the optional run-context contract, and packages the
result into a `Mojentic.LLM.Tools.ToolCallOutcome`.

Tools may accept either `run/2` (the existing two-arg form,
`run(tool, args)`) or, when they implement
`Mojentic.LLM.Tools.RunContext`-aware semantics, `run/3`
(`run(tool, args, ctx)`). The invocation helper detects which is
exported and dispatches accordingly.

# `invoke`

Resolve and invoke a single tool. Always returns a
`ToolCallOutcome` — exceptions are caught and surfaced as
`ok?: false`.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
