# ash_lua v0.1.0 - Table of Contents

> An Ash extension for embedding Lua scripts with a consistent actor, tenant, and context.

## GUIDES

- [Home](readme.md)

- Tutorials
  - [Getting started with AshLua](getting-started-with-ash-lua.md)

- How To
  - [Integrate with ash_ai](integrate-with-ash-ai.md)

- Topics
  - [Example use cases](example-use-cases.md)

- About AshLua
  - [Change Log](changelog.md)

## Modules

- [AshLua.Docs](AshLua.Docs.md): Generates Lua-side API documentation suitable for an MCP `search_docs` / `get_docs`
surface (notably for `ash_ai`).
- [AshLua.Domain](AshLua.Domain.md): Extension that exposes an Ash domain's resources to Lua scripts evaluated through `AshLua.eval!/2`.

- [AshLua.Domain.Info](AshLua.Domain.Info.md): Introspection helpers for `AshLua.Domain`.
- [AshLua.Encoder](AshLua.Encoder.md): Conversions between Elixir/Ash values and the plain shapes that `:luerl` (via the `:lua` package)
can encode as Lua tables.
- [AshLua.Error](AshLua.Error.md): Protocol for rendering Ash errors into the Lua-side error shape.
- [AshLua.EvalActions](AshLua.EvalActions.md): Resource extension that synthesizes `:eval` and `:docs` generic actions for
driving an LLM agent against a scoped Lua surface.
- [AshLua.EvalActions.Expose](AshLua.EvalActions.Expose.md): Internal struct backing one `resource Mod, actions: [...]` entry inside an
`eval_actions do ... end` block.

- [AshLua.EvalActions.Info](AshLua.EvalActions.Info.md): Introspection helpers for the `AshLua.EvalActions` extension.
- [AshLua.EvalActions.Run.Docs](AshLua.EvalActions.Run.Docs.md): Implementation backing the synthesized `:docs` action.
- [AshLua.EvalActions.Run.Eval](AshLua.EvalActions.Run.Eval.md): Implementation backing the synthesized `:eval` action.
- [AshLua.Fields](AshLua.Fields.md): Manifest-driven field selection for Lua-side queries.
- [AshLua.Resource](AshLua.Resource.md): Extension that exposes a single Ash resource's public actions to Lua scripts.
- [AshLua.Resource.Info](AshLua.Resource.Info.md): Introspection helpers for `AshLua.Resource`.
- [AshLua.Runtime](AshLua.Runtime.md): Builds a Lua VM with Ash action bindings derived from `Ash.Info.Manifest.generate/1` and
dispatches calls through to Ash with consistent actor / tenant / context plumbing.
- [AshLua.Type](AshLua.Type.md): Extends an Ash type with Lua-facing metadata.

- AshLua
  - [AshLua](AshLua.md): AshLua exposes Ash actions to Lua scripts evaluated through the [`lua`](https://hex.pm/packages/lua)
Elixir package, ensuring a consistent actor / tenant / context are propagated into every Ash call.

- Exceptions
  - [AshLua.Errors.FieldsError](AshLua.Errors.FieldsError.md): An error raised during field-selection parsing / validation, carrying the
user-facing message, stable code, and any field names + interpolation
context the throw site knew about.

## Mix Tasks

- [mix ash_lua.install](Mix.Tasks.AshLua.Install.md): Installs AshLua. Should be run with `mix igniter.install ash_lua`

